Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/339.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何正确使用javassist操作源代码?_Java_Code Injection_Bytecode_Javassist - Fatal编程技术网

如何正确使用javassist操作源代码?

如何正确使用javassist操作源代码?,java,code-injection,bytecode,javassist,Java,Code Injection,Bytecode,Javassist,我基本上想写一个注入框架。我想标记和设置每一个可以注入东西的字段(静态以便访问) 我目前面临的问题是java抛出了不兼容的ClassChangeError。 大多数人都这么告诉我 我只是重新编译(反编译并编译)代码 但对我来说,这听起来像是一个懒惰的解决方案,对我来说是不可行的。关于这个现象的Eclipse文档声明我的行为是不合法的,但我不理解为什么,因为重新编译正在修复这个错误。那么javassist有更好的解决方案吗 java.lang.IncompatibleClassChangeErro

我基本上想写一个注入框架。我想标记和设置每一个可以注入东西的字段(静态以便访问)

我目前面临的问题是java抛出了不兼容的ClassChangeError。 大多数人都这么告诉我

我只是重新编译(反编译并编译)代码

但对我来说,这听起来像是一个懒惰的解决方案,对我来说是不可行的。关于这个现象的Eclipse文档声明我的行为是不合法的,但我不理解为什么,因为重新编译正在修复这个错误。那么javassist有更好的解决方案吗

java.lang.IncompatibleClassChangeError: Expected non-static field de.red.core.module.test.TestModule.injectionTest

重新编译修复了该错误,因为重新编译意味着为对字段的所有访问生成更新的代码。要在不重新编译的情况下执行同样的操作,必须手动更新访问该字段的每个代码。
java.lang.IncompatibleClassChangeError: Expected non-static field de.red.core.module.test.TestModule.injectionTest