我有这段代码:
CompletableFuture.runAsync(() -> addReferenceAnyBrowser(referenceManagementTestPageSafari));
在这里设置一个断点可以顺利运行。
但是,当我在方法addReferenceAnyBrowser中放置一个断点时,没有任何反应。这是预期的行为吗?
Java 8已经有很长一段时间了,所以我希望Eclipse能够调试lambda。
答案 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 })强>