如何在Eclipse中启用java代码hotswapping

时间:2012-08-15 02:23:34

标签: java eclipse hotswap

我一直在尝试使用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);
        }
    }
}

有人可以提供解释原因吗?是的,我确实已经选中了“自动构建”标志,并且正在调试模式下运行。

2 个答案:

答案 0 :(得分:1)

我不是100%肯定上面的例子,但一般来说规则是你不能改变类的接口。例如,添加矿石去除方法,更改方法签名,添加/删除静态字段等

答案 1 :(得分:1)

我认为,为了热交换方法的源,该方法必须在调用堆栈中。在第一个示例中,重复调用已更改的方法,而在第二个示例中,该方法被调用一次,然后才进行代码循环。如果代码在方法已经运行后更改,则该方法永远不会再次出现在调用堆栈中,并且无法获取代码更改。