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

标签 java eclipse debugging lambda

我有这个代码:

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/

相关文章:

c# - 将 Java 加密代码转换为 C#

java - Eclipse JFace 的向导

eclipse - Gradle:主机名不能包含空格

c# - Visual Studio 2010 调试器如何处理 XmlReader.Read 中的 XmlException?

oracle - ORA-0131 :insufficient privileges DEBUG CONNECT SESSION

java - 正则表达式匹配循环永远不会终止

java - 使用 scribe oauth facebook 的空指针异常

java - Tomcat 服务器 "Commons Daemon Service Manager"命令提示符

python - 通过旧列表修改列表副本的错误

java - liquibase 与 Spring Boot 2 集成时出错