Java反射更新.class文件
我刚刚了解了Java反射功能,并使用它成功地完成了以下工作:Java反射更新.class文件,java,reflection,Java,Reflection,我刚刚了解了Java反射功能,并使用它成功地完成了以下工作: 访问类的公共成员函数 设置类的公共成员函数 我的问题是,当我进行设置时,我的.class文件会被更新吗(我看不到新的设置值会发生这种情况) 我明白了,但我不确定我的问题的答案。如果.class文件不应更新,那么我们如何重置该.class文件以包含动态数据,以便程序可以继续使用新的值集而不是编译时确定的旧值集?或者这是不可能的?.class是一个编译代码(您的.java的转换),这是一个针对jvm的只读文件 jvm读取.class的代码
我明白了,但我不确定我的问题的答案。如果.class文件不应更新,那么我们如何
重置该.class文件以包含动态数据,以便程序可以继续使用新的值集而不是编译时确定的旧值集?或者这是不可能的?.class
是一个编译代码(您的.java
的转换),这是一个针对jvm
的只读文件
jvm
读取.class
的代码,然后代码就存在jvm
内存中。所有反射方法都会修改内存中的
代码,并且永远不会将其写回.class
asnwer是:否。如果希望保留字段值,则必须序列化该类。我非常非常困惑。这个问题意味着反射被用来以某种方式添加一个使用反射的新方法(“成员函数”),但这是不可能的。可以使用反射调用setter方法并更改类实例的属性值。这与任何.class文件都没有任何关系。