通过反射获取int[]的值



好的,所以我试图通过反射获得int[]的值,并且它一直很差。下面是我的代码:

我想要得到的值是

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 a 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));
}

演示。

相关内容

  • 没有找到相关文章

最新更新