我有两个字符串:如何通过反射扩展Java类?
String a="org.test.A";
String b="org.test.B";
我得到反射
Class aClass = Class.forName(a);
我想ACLASS延伸B,就像一个类:
Class okClass=aClass.extends(b);//how to implement this?
如何实现这一点?
如何获得okClass?
谢谢!
我有两个字符串:如何通过反射扩展Java类?
String a="org.test.A";
String b="org.test.B";
我得到反射
Class aClass = Class.forName(a);
我想ACLASS延伸B,就像一个类:
Class okClass=aClass.extends(b);//how to implement this?
如何实现这一点?
如何获得okClass?
谢谢!
除了使用JDK dynamic proxy,它只能通过接口工作,您可以使用CGLIB或javassist在运行时扩展类。
您可以先阅读dynamic proxies。代理不扩展类,但它们确实实现了可以通过调用处理程序映射您的类实现的接口。
一般而言,您希望能够在运行时创建新类(不是对象)。您可以使用bytecode engineering或java compiler api。
前面已经说过,我建议你看看CGLIB但也有javassist这是一个类库,用于编辑字节码...
是类A和B已经在其他地方定义?你期望okClass具有哪些属性?这个问题毫无意义。 – 2009-12-11 09:43:01