我试图使用Reflection从2d阵列中访问对象。我可以抓住持有数组的对象,如Matrix [] [] drawMatrix = getDrawMatrix();使用反射。
虽然我无法滚动每个对象以从中获取信息,例如drawMatrix [2] [4] .getID();
这是我用来抓取对象的Reflection类的代码
public static Object getClassObject(ClassLoader clsLoader, String clazz, String field, Object instance){
try {
Class<?> clz = clsLoader.loadClass(clazz);
Field _field = clz.getDeclaredField(field);
_field.setAccessible(true);
return _field.get(instance);
} catch (Exception e){
e.printStackTrace();
}
return null;
}
目前我已经尝试了以下内容,但无济于事。
Object matrixObj = Reflection.getClassObject(Client.classLoader, "renderCls", "drawMatrix", null);
int sizeArray = Array.getLength(matrixObj);
for(int i=0;i<sizeArray;i++){
Object matrixRowI = Array.get(matrixObj, i);
System.out.println("Matrix_Row_" + i + ": " + Array.getLength(matrixRI));
}
我收到零。
如何做到这一点?非常感谢您的时间和精力!