出于好奇,有没有(稳定的)开源项目用于运行java代码生成而不是cglib?我为什么要用它们呢?
我想为一个类而不是一个接口创建一个代理。有描述为此目的使用 cglib 或 Javassist 的答案(例如/sf/answers/311499891/),但我遇到了麻烦,因为我对代理感兴趣的类没有无参数构造函数,因此Enhancer.create()抛出异常。查看 Javassist ProxyFactoryjavadoc,它也需要构造函数参数。
显而易见的解决方法是通过反射并传递一个 nulls/0/etc 数组来查找构造函数参数类型。但是如果构造函数抛出异常,这将不起作用。
有没有更好的选择(也许使用其他库)?