gpt4 book ai didi

java - 带反射的 NPE

转载 作者:行者123 更新时间:2023-12-01 19:08:14 28 4
gpt4 key购买 nike

我正在尝试运行客户端并访问字段来设置/获取值。当脚本启动时,我创建一个加载了 URLClassLoader 的客户端类的新实例,并将其分配给 gameApplet

现在,下一段代码可以正常工作(访问静态字段):

Class<?> clientClass = clientClassLoader.loadClass("client");
fps = clientClass.getDeclaredField("fpsOn");
fps.setAccessible(true);
fps.set(null, true);

但是,当我尝试访问非静态字段时:

logged = clientClass.getField("loggedIn");
logged.set(gameApplet, true);

我收到此错误

java.lang.NullPointerException
at sun.reflect.UnsafeFieldAccessorImpl.ensureObj(Unknown Source)
at sun.reflect.UnsafeBooleanFieldAccessorImpl.set(Unknown Source)
at java.lang.reflect.Field.set(Unknown Source)
at launch.run(launch.java:206)
at java.lang.Thread.run(Unknown Source)

我假设实例为空,但为什么它会得到一个静态字段?

最佳答案

您似乎没有创建该类的“实例”。您需要调用类的构造函数,然后在需要时使用实例。

上面的代码适用于静态字段,因为它们可以从类访问,即它们不需要实例。

关于java - 带反射的 NPE,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9247244/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com