java - CgLib 增强器私有(private)构造函数

标签 java bytecode cglib

我正在尝试使用 cglib 为仅具有私有(private)构造函数的类创建代理。我无法更改可见性,因为它是一种库方法。

我找到了this post ,并按照说明覆盖 filterConstructors 方法,但是当 cglib 尝试调用它时,我得到一个 java.lang.IllegalAccessError

我可以以某种方式绕过这个限制吗?

最佳答案

Cglib 通过子类化来工作。因此,cglib 类永远无法访问代理类的构造函数。

你可以尝试做的是重新定义现有的类。为此,您可以使用诸如 Byte Buddy 之类的库。 .

关于java - CgLib 增强器私有(private)构造函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35232648/

相关文章:

java - BCEL 更新异常(exception)表

java - 如果 Java 中的反射减慢了命令的执行速度,为什么还有那么多框架使用它?

java - 使用 Maven Ant 任务执行 jetty stop 时未授予权限 (java.lang.RuntimePermission exitVM)

java - 同一应用服务器中的 2 个 JSF/Richfaces 版本

java - Bluemix 上的 Redis

Java逆向工程教程

java - 在 ASM 中重新加载局部变量

java - cglib 创建的 spring bean 抛出 no such method 异常

java - 如何在运行时获取远程java类文件字节流?

java - 你能以编程方式访问当前的 Heroku dyno id/name 吗?