在运行时更改java类

在运行时更改java类,java,reflection,Java,Reflection,我有一个有很多字段的类 class MyClass { private String field1; private String field2; } 是否可以使用反射更改字段的名称?(例如,将field1转换为field0等) 是否可以使用反射更改字段的名称 没有 最接近这个1的方法是更改源代码,重新编译,然后创建一个新的类加载器来加载新的类 但请注意,您将拥有的课程与您开始学习的课程不同: 旧类的实例将不会获取新字段 与旧类同时加载的代码将继续绑定到旧类 1-您可以使

我有一个有很多字段的类

class MyClass {
    private String field1;
    private String field2;
}
是否可以使用反射更改字段的名称?(例如,将
field1
转换为
field0
等)

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

没有

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

但请注意,您将拥有的课程与您开始学习的课程不同:

  • 旧类的实例将不会获取新字段

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



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

不,这是不可能的。但问题应该是:为什么要这样做?因为它使用预编译类运行?我明白了。看来我得重新上课了。因为最初的问题是API中使用的类中的字段名称不好,我们无法更改它。因此,要么我们必须重新实现它,然后将一个对象转换成另一个对象,要么我想我可以在运行时以某种方式更改字段名。