我有以下问题:
- 我正在编写代码,想在无法更改其源代码的包中使用 java bean。
- 这个包在给定的java bean上有一个错误。就我而言,解决方案是删除此字段(如果我有源代码)+重新编译。
- 我想在我的源代码中编写相同的包 + 类(因为我没有 jar 的源代码),没有有问题的字段。
- 实际场景有点复杂。
在开始实施之前,我想与您协商一下最好的方法是什么。
我认为您很可能在这里寻找适配器设计模式。但是请记住,使用此模式,您不会更改/修改原始类,而是自己的继承类(尽管在同一包中)。
方法是使用相同的包结构重写相同的java bean并设置类路径顺序,以便首先引用用户定义的代码而不是jar
你不能真正改变jar中的现有源代码(也许我在这里错了,但现在没有办法)。您可以做的是在类加载级别和面向方面的方法(如字节码操作)上工作。有了它,您可以在加载时更改类、方法等的源代码。但我真的不会推荐它,只是如果你真的想要它,那么它可能是一种可能性。
你现在春天方面吗?您可以尝试配置一个 Pointcut 来拦截您的方法调用,并使用"绕过建议"来调用您自己的代码并避免原始 .更多信息 : http://static.springsource.org/spring/docs/3.1.1.RELEASE/spring-framework-reference/html/aop.html
对原始源代码进行逆向工程,编写自己的 bean 并将其添加到 jar 中怎么样?当然,如果 jar 的许可证不禁止这种方法。
它相对简单,现代逆向工程工具为您提供可读的源代码。
有许多工具可以对已编译的类进行逆向工程。我最近使用了一个作为Eclipse插件。