在运行时更改 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,注意事项仍然适用。
我有一个 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,注意事项仍然适用。