我读了this在那里发布并遵循指南
。但这没有帮助;当该字段存在时,我得到 NoSuchFieldException
。示例代码
如下:
这是我的代码:
class A{
private String name="sairam";
private int number=100;
}
public class Testing {
public static void main(String[] args) throws Exception {
Class cls = Class.forName("A");
Field testnum=cls.getDeclaredField("number");
testnum.setAccessible(true);
int y = testnum.getInt(testnum);
System.out.println(y);
}
}
编辑:根据下面的回答,我试过这个:
Class cls = Class.forName("A");
Field testnum=cls.getDeclaredField("number");
testnum.setAccessible(true);
A a = new A();
int y = testnum.getInt(a);
System.out.println(y);
但错误是一样的
最佳答案
Field#getInt的Object
参数必须是 A 类
的实例。
A a = new A();
int y = testnum.getInt(a);
由于 name
和 number
字段不是静态的,因此您无法从类中获取它们;您必须从类的特定实例中获取它们。
关于java - 尝试检索字段值时出现 NoSuchFieldException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22157312/