相关疑难解决方法(0)

Java 8 lambda表达式在哪里评估?

lambda表达式是在我们编写它们的地方还是在任何其他Java类中进行评估的?

例如 :

Stream<Student> absent =  students.values().stream().filter(s -> !s.present());
Run Code Online (Sandbox Code Playgroud)

传递给过滤器方法的上述lambda表达式是否会在代码写入的给定类中立即执行,或者在另一个类中执行,并且与以传统编码样式编写代码相比,它将花费更多时间(以纳秒为单位)在Java 8之前?

java lambda

17
推荐指数
3
解决办法
1965
查看次数

无法在构造函数内部调用的方法中为最终变量赋值

class A {
    private final int t1;
    private final int t2;

    public A(int c1, int c2) {
        t1 = c1;
        initT2(c2);
    }

    private void initT2 (int c2) {
        try { 
            t2 = c2;
        } catch (...) {}
    }
}
Run Code Online (Sandbox Code Playgroud)

t1 被初始化但 t2 没有。Cannot assign a value to final variable 's3Client'是错误。

如果我initT2在构造函数内移动函数的主体,它就可以工作。从构造函数内部调用它时,为什么它不能在构造函数外部工作?

java

2
推荐指数
1
解决办法
42
查看次数

标签 统计

java ×2

lambda ×1