1 回答
TA贡献2039条经验 获得超7个赞
要访问数组的对象(用 [] 定义的字段),您可以执行以下操作:
if (incomingField.getType().isArray()) {
Object[] thisArray = (Object[]) incomingField.get(incomingObject);
for (int k = 0; k < thisArray.length; k++) {
Object occurrence = thisArray[k];
Object result = updateIncomingObject(occurrence);
thisArray[k] = result;
}
incomingField.set(incomingObject, thisArray);
}
要访问List的对象,您可以执行以下操作:
if (List.class.isAssignableFrom(incomingField.getType())) {
List<?> thisList = (List<?>) incomingField.get(incomingObject);
for (int k = 0; k < thisList.size(); k++) {
Object occurrence = thisList.get(k);
Object result = updateIncomingObject(occurrence);
thisList.set(k, occurrence);
}
}
注意:如果在迭代数组/列表时调用updateIncomingObject并且数组/列表中的对象是数组 (Object[]),则您的方法将不会执行任何操作,因为数组 (Object[]) 的声明字段数班级为0。
我希望这对你有帮助。
添加回答
举报