Eclipse:是否可以调试CompletableFuture调用的方法?

时间:2017-11-06 15:44:03

标签: java eclipse debugging lambda

我有这段代码:

CompletableFuture.runAsync(() -> addReferenceAnyBrowser(referenceManagementTestPageSafari));

在这里设置一个断点可以顺利运行。

但是,当我在方法addReferenceAnyBrowser中放置一个断点时,没有任何反应。这是预期的行为吗?

Java 8已经有很长一段时间了,所以我希望Eclipse能够调试lambda。

1 个答案:

答案 0 :(得分:3)

Eclipse还支持从Lambda函数调用的方法的断点,您可以使用以下示例进行验证:

public class Foo {

    public static void main(String[] args) throws Exception {
        CompletableFuture<Void> future = CompletableFuture.runAsync(() -> foo());
        future.get();
    }

    private static void foo() {
        System.out.println("foo");
    }

}

在您的情况下,这意味着已创建CompletableFuture的实例,但尚未执行Lambda函数,因为尚未调用 get()lazy evaluation })