因此,对于这个项目,我试图在运行时扩展一个类。
我想知道的是,这可能吗?如果是这样,我该怎么办?是否有用于这些目的的库?
最佳答案
CGLib是您要查找的库。它在扩展类或在运行时实现接口(interface)方面非常强大,因此许多流行的框架(如Spring或Hibernate)都使用它。
您可以使用以下代码创建类扩展
public Object createProxy(Class targetClass) {
Enhancer enhancer = new Enhancer();
enhancer.setSuperclass(targetClass);
enhancer.setCallback(NoOp.INSTANCE);
return enhancer.create();
}
尽管您可能会使用具有所需逻辑的有用的方法拦截器替换
NoOp
回调。