gpt4 book ai didi

java - ClassNotFoundException错误及反射(reflection)

转载 作者:行者123 更新时间:2023-12-01 18:38:20 25 4
gpt4 key购买 nike

我能够访问类及其变量,但是是否可以更改用户定义的变量?

例如:

Class c = Class.forName(theclassname);
Object o = c.newInstance();
theclassname t = (theclassname) o;

我能做到

t.variable = 1;

但是我可以吗

String v = "variable";
t.v = 1;

以任何方式?

最佳答案

您不能使用

Class c = Class.forName("C:\\A.txt");

就这样。

这段代码按提供的名称返回类,而不是 txt 文件。

为了避免这种情况,您必须创建类(假设是一个名为 A 的类),然后使用以下代码通过反射检索类 A:

Class c = Class.forName("A");

请注意,这是一个类,而不是 txt 文件。

---编辑---

通过此编辑,您完全改变了问题。
根据新的(编辑后的)问题,您不能像您所写的那样使用反射:

t.v = 1;

您应该使用此代码:

t.getClass().getField(v).set(t, 1);

这将解决你的问题。

关于java - ClassNotFoundException错误及反射(reflection),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20872563/

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