好吧,我正在尝试通过反射获取 int[]
的值,但效果很差。这是我的代码:
我想要获得的值(value)
public int[] blah;
for(Field f : c.getDeclaredFields()) {
f.setAccessible(true);
if(f.getName().toLowerCase().contains("blah")) {
Logger.write("Name: "+f.getName() +" Value:"+Array.get(f, 1));
}
}
无论我做什么,我都会不断收到“blah is not an array”。
最佳答案
您正在尝试传递字段而不是字段值。首先,您需要使用 f.get(someObject)
从 someObject
获取实际数组,然后对结果调用 Array.get
对象,如下所示:
if(f.getName().toLowerCase().contains("blah")) {
Object arr = f.get(id);
System.out.println("Name: "+f.getName() +" Value:"+Array.get(arr, 1));
}
关于java - 通过反射获取int[]的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32169725/