【发布时间】:2016-02-06 18:41:00
【问题描述】:
我正在尝试使用 cglib 为仅具有私有构造函数的类创建代理。我无法更改可见性,因为它是一种库方法。
我找到了this post,并按照说明覆盖了filterConstructors 方法,但是当cglib 尝试调用它时,我得到一个java.lang.IllegalAccessError。
我能以某种方式绕过这个限制吗?
【问题讨论】:
我正在尝试使用 cglib 为仅具有私有构造函数的类创建代理。我无法更改可见性,因为它是一种库方法。
我找到了this post,并按照说明覆盖了filterConstructors 方法,但是当cglib 尝试调用它时,我得到一个java.lang.IllegalAccessError。
我能以某种方式绕过这个限制吗?
【问题讨论】:
Cglib 通过子类化工作。因此,cglib 类永远无法访问代理类的构造函数。
你可以尝试做的是重新定义现有的类。为此,您可以使用 Byte Buddy 等库。
【讨论】: