在运行时更改 java class

change java class in runtime

我有一个 class 字段数。

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

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

Is it possible to change the name of the field using reflection?

没有

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

但请注意,您将拥有的是 不同 class 与您开始的那个:

  • 旧 class 的实例不会获取新字段。

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


1 - 您可以使用 "byte code engineering" 实现相同的效果,但您仍然需要再次加载 class,注意事项仍然适用。