我有两个字符串:
String a="org.test.A";
String b="org.test.B";
我通过Reflection获得了一个课程
Class aClass = Class.forName(a);
我希望aClass扩展b,如:
Class okClass=aClass.extends(b);//how to implement this?
如何实现这个?
如何获得okClass?
谢谢!
答案 0 :(得分:8)
除了使用仅由接口工作的JDK dynamic proxy之外,您还可以使用CGLIB或javassist在运行时扩展类。
答案 1 :(得分:4)
一般来说,您希望能够在运行时创建新类(而不是对象)。您可以使用bytecode engineering或java compiler api。
答案 2 :(得分:3)
您可以先阅读dynamic proxies。代理不扩展类,但它们实现了可以通过调用处理程序在类实现上映射的接口。
答案 3 :(得分:0)
如前所述,我建议查看CGLIB,但还有javassist这是一个用于编辑字节码的类库...