¿Se está instanciando una clase en una expresión lambda? [duplicar
Esta pregunta ya tiene una respuesta aquí:
¿Para qué se compila una expresión Lambda de Java 8? [duplicar 1 respuestaTengo el siguiente método de invocación, en el que estoy pasando una expresión lambda. ¿Se está instanciando una clase implícitamente aquí?
printStudents(
roster,
(Student s) -> s.getGender() == Student.Sex.MALE
&& s.getAge() >= 18
&& s.getAge() <= 25
);
Firma del método:
printStudents(List<Student> roster, CheckStudent checkstudet)
interface CheckStudent {
boolean test(Student s);
}
Edita
Algunos de ustedes me sugirieron refactorizar el código, pero surge la misma pregunta.
CheckStudent checkStudent = (Student s) -> s.getGender() == Student.Sex.MALE && s.getAge() >= 18 && s.getAge() <= 25;
Es una clase (no me estoy refiriendo a la claseStudent
) ser instanciado en el lado derecho de la tarea?