我有这个代码:
CompletableFuture.runAsync(() -> addReferenceAnyBrowser(referenceManagementTestPageSafari));
在这里设置断点没有问题。
但是,当我在 addReferenceAnyBrowser 方法中放置断点时,什么也没有发生。这是预期的行为吗?
Java 8 已经存在相当长一段时间了,所以我希望 Eclipse 也能够调试 lambda。
最佳答案
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)。
关于java - Eclipse:是否可以调试 CompletableFuture 调用的方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47140652/