有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

将for循环从Java 7转换为Java 8(Lambda)

希望将以下for循环从Java7转换为Java8(lambda)

for (Employee e : list) {
    session.evict(e);
}

这里,会话是Hibernate会话。我在这里的意图是将上面提到的工作java 7代码更改为具有lambda特性或方法引用的java 8


共 (1) 个答案

  1. # 1 楼答案

    可以将表达式切换到方法引用lambda:

    list.forEach(session::evict);
    

    请注意,如果Session.evict引发异常,则需要捕获/转换为RuntimeException以编译上述内容,或者在循环中使用更长形式的lambda

    list.forEach(e -> {
        try {
            session.evict(e);
        } catch (Exception ex) {
            throw new RuntimeException(ex);
        }
    });