是否可以使用反射在运行时更改类对象的继承层次结构?
我的情况是:
超类
MiddleClass扩展了SuperClass
BottomClass扩展了SuperClass
我想在运行时使用反射来更改BottomClass以扩展MiddleClass.这可能吗?
谢谢
使用Java可以获得的最接近的是检测.基本上你编写了一些Java类,它们给定了一系列定义类的字节,用字节代码来解决,并返回修改后的类文件字节数组.然后,您可以将这些类打包到JAR文件中,并告诉JVM在命令行上使用它们,或者将属性放入检测JAR文件的清单文件中.
当然,如果你这样做,你会想要使用像ASM这样的字节代码操作库.
编辑:如果您对实现接口感兴趣的类,您可能希望通过java.lang.reflect.Proxy查看动态代理类.这样做的缺点是你没有写的代码片段不受影响,但具有以下优点:new ClassOfInterest()
SecurityManager问题.