在运行时更改java类

时间:2015-04-14 07:32:57

标签: java reflection

我有一个有多个领域的课程。

class MyClass {
    private String field1;
    private String field2;
}

是否可以使用反射更改字段的名称? (例如,将field1转换为field0等等。)

1 个答案:

答案 0 :(得分:2)

  

是否可以使用反射更改字段的名称?

没有

最接近这个 1 的是更改源代码,重新编译,然后创建一个新的类加载器来加载新类。

但请注意,您所拥有的是与您开始的不同的类:

  • 旧班级的实例不会获得新字段。

  • 与旧类同时加载的代码将继续绑定到旧类。


1 - 您可以使用“字节码工程”实现相同的效果,但仍需要再次加载该类,并且警告仍然适用。