java - 尝试检索字段值时出现 NoSuchFieldException

标签 java class reflection field nosuchfileexception

我读了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#getIntObject参数必须是 A 类 的实例。

A a = new A();
int y = testnum.getInt(a);

由于 namenumber 字段不是静态的,因此您无法从类中获取它们;您必须从类的特定实例中获取它们。

关于java - 尝试检索字段值时出现 NoSuchFieldException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22157312/

相关文章:

java - 如何使用 Java 字符串变量中的参数在 SQLite 数据库中创建新表?

html - 在新的 DIV HTML 标签中导入现有的 CSS 类

java - Java多个文件和文件夹层次结构

java - 为 XNAT 导入 Gradle 项目时出现问题 - Unresolved 类型

java - Jetty 服务器显示 System.err

java - 更改 JTable 背景颜色

java - 判断一个类是否是另一个类的字段

c# - 使用引用其依赖项的构造函数创建动态类型

.net - 使用 Reflection 订阅事件

java - 在运行时更改类的所有实例的方法