所以我更新到Eclipse Mars(4.5),由于某种原因,我无法在调试器中使用热插拔代码。通常我可以做这样的事情:
public static void main(String[] args){
while(true){
System.out.println("123");
}
}
然后,如果我在调试模式下启动它,将文本更改为" 321",然后保存,然后它将更新而无需重新启动它。它的行为与运行" Run"完全一样。模式而不是"调试"。
我尝试过:
我开始变得绝望,因为我很难在没有调试模式的情况下完成工作,所以任何正确方向的帮助/提示都会非常值得赞赏。
答案 0 :(得分:0)
HotSwap不适用于静态方法。
然而它适用于实例方法,所以它适用于这段代码:
public class Main {
public static void main(String[] args) {
new Main().f();
}
public void f() {
while(true){
System.out.println("123");
}
}
}
答案 1 :(得分:0)
好的,所以我终于找到了问题。您似乎无法在运行时编辑循环。假设你有一个这样的循环:
public static void main(String[] args){
while(true){
System.out.println("123");
}
}
然后你就无法编辑" 123"串。 您可以如何编辑在循环内调用的方法,如下所示:
public static void main(String[] args){
while(true){
System.out.println(methodA());
}
}
public static String methodA(){
return "123";
}
现在你可以编辑字符串" 123"它会更新。 这也适用于无限" for"循环,所以猜测经验法则是方法体必须被重新调用"在更新之前,它还不足以等待下一个循环调用。