小编The*_*hod的帖子

是否在lambda表达式中实例化了一个类?

我有以下方法调用,其中传递了一个lambda表达式。这里是否隐式实例化了一个类?

printStudents(
    roster,
    (Student s) -> s.getGender() == Student.Sex.MALE
        && s.getAge() >= 18
        && s.getAge() <= 25
);
Run Code Online (Sandbox Code Playgroud)

方法签名:

printStudents(List<Student> roster, CheckStudent checkstudet)
Run Code Online (Sandbox Code Playgroud)


interface CheckStudent {
    boolean test(Student s);
}
Run Code Online (Sandbox Code Playgroud)

编辑

你们中有些人建议我重构代码,但是出现了同样的问题。

CheckStudent checkStudent = (Student s) -> s.getGender() == Student.Sex.MALE && s.getAge() >= 18 && s.getAge() <= 25;
Run Code Online (Sandbox Code Playgroud)

是否Student在作业的右侧实例化了一个类(我不是指class )?

java lambda functional-interface

5
推荐指数
1
解决办法
381
查看次数

在Java Stream API中,中间操作是延迟执行的而终端操作是急切执行的,这意味着什么?

list.stream().filter( a-> a < 20 && a > 7).forEach(a -> System.out.println(a));
Run Code Online (Sandbox Code Playgroud)

fiter 懒惰地执行。

forEach 急切地被执行。

这意味着什么?

java java-stream

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

标签 统计

java ×2

functional-interface ×1

java-stream ×1

lambda ×1