Analizamos las interfaces funcionales clave del paquete
java.util.function:
Predicate,
Consumer,
Supplier,
Function — qué reciben/devuelven y dónde se usan en el Stream API (
filter,
map,
forEach,
generate). Recordamos la regla «un único método abstracto» y la anotación
@FunctionalInterface, escribimos lambdas, las comparamos con clases anónimas, lo practicamos con la clase
User y revisamos errores típicos al elegir entre
Predicate/
Function, etc.