如何通过Reflection扩展Java类?

时间:2009-12-11 09:13:02

标签: java

我有两个字符串:

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?

谢谢!

4 个答案:

答案 0 :(得分:8)

除了使用仅由接口工作的JDK dynamic proxy之外,您还可以使用CGLIB或javassist在运行时扩展类。

答案 1 :(得分:4)

一般来说,您希望能够在运行时创建新类(而不是对象)。您可以使用bytecode engineeringjava compiler api

答案 2 :(得分:3)

您可以先阅读dynamic proxies。代理不扩展类,但它们实现了可以通过调用处理程序在类实现上映射的接口。

答案 3 :(得分:0)

如前所述,我建议查看CGLIB,但还有javassist这是一个用于编辑字节码的类库...