Uma classe está sendo instanciada em uma expressão lambda? [duplicado
Esta pergunta já tem uma resposta aqui:
O que é um Java 8 Lambda Expression compilado? [duplicado 1 respostaEu tenho a seguinte invocação de método, na qual estou passando uma expressão lambda. Uma classe está sendo instanciada implicitamente aqui?
printStudents(
roster,
(Student s) -> s.getGender() == Student.Sex.MALE
&& s.getAge() >= 18
&& s.getAge() <= 25
);
ssinatura @Method:
printStudents(List<Student> roster, CheckStudent checkstudet)
interface CheckStudent {
boolean test(Student s);
}
Edita
Alguns de vocês me sugeriram refatorar o código, mas surge a mesma pergunt
CheckStudent checkStudent = (Student s) -> s.getGender() == Student.Sex.MALE && s.getAge() >= 18 && s.getAge() <= 25;
É uma classe (não estou me referindo à classeStudent
) sendo instanciado no lado direito da tarefa?