我有以下方法调用,其中传递了一个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 )?
list.stream().filter( a-> a < 20 && a > 7).forEach(a -> System.out.println(a));
Run Code Online (Sandbox Code Playgroud)
fiter 懒惰地执行。
forEach 急切地被执行。
这意味着什么?