我一直在尝试在 Eclipse 中使用热交换 Java 代码,但我不知道 Eclipse 中热交换 Java 代码的限制和规则是什么,所以我的努力经常失败。如果有人可以提供有关如何在 Eclipse 中热交换代码的相对详细的解释,或者将我链接到一个,那就太好了。
例如,如果我更改 u
的值,此代码就会热交换:
public class apples extends tuna {
public static void main(String[] args) throws InterruptedException {
while (true) {
ddop();
Thread.sleep(1000);
}
}
public static void ddop() {
int u = 3;
System.out.println(u);
}
}
但是这段代码没有:
public class apples extends tuna {
static int u;
public static void main(String[] args) throws InterruptedException {
int u = 3;
while (true) {
System.out.println(u);
Thread.sleep(1000);
}
}
}
谁能解释一下为什么?是的,我确实选中了“自动构建”标志,并且正在 Debug模式下运行。
最佳答案
我相信为了热交换方法的源,该方法必须位于调用堆栈中。在第一个示例中,更改的方法被重复调用,而在第二个示例中,该方法被调用一次,然后代码才会循环。如果方法运行后代码发生更改,则该方法永远不会再次出现在调用堆栈中,并且无法获取代码更改。
关于java - 如何在Eclipse中启用java代码热交换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11963320/