热代码替换对我适用于实例方法,但不适用于静态方法。我得到这个错误
请注意,我只是将println
添加到static private
甚至public
方法的主体中,而不更改错误消息所建议的任何方法修饰符。如何实现这种热替换?
我正在使用Eclipse Oxygen和Java 8 JRE。
Maven com.google.cloud.tool:appengine-maven-plugin
用于以目标为目标在调试模式下启动应用
appengine:run
。然后,我连接Eclipse远程调试器。
答案 0 :(得分:1)
在热代码替换中,whole class file is replaced。要找出无法交换文件的确切原因,您必须将原始字节码与要更改的字节码进行比较。
默认情况下,Maven使用javac
进行编译,而要交换的文件是使用Eclipse自己的Java编译器进行编译的。不同的优化可能导致类文件不可交换,尤其是在使用私有方法,字段或常量的情况下。
以下其中一项可能会解决您的问题:
protected