Nik*_*Nik 3 java reflection bytecode
我有一个被调用的类A,我需要创建该类的新对象而不调用它的构造函数.我想通过反射设置它的所有属性.
我可以A使用反射重新定义类的构造函数吗?
或者有其他办法可以做到这一点吗?
在Sun/Oracle JVm中,您可以使用Unsafe.allocateInstance(Class).否则,您必须生成字节代码以创建实例而无需调用构造函数.您可以使用ASM.如果没有使用Reflection的构造函数,则无法创建实例.
顺便说一句:您可以使用字节代码操作来定义新方法,但是要添加构造函数,您必须在加载之前更改类.(这很棘手)