자주 사용되는 다양한 함수형 인터페이스를 제공.
표준화 된다는 장점이 있음!
Predicate<String> isEmptyStr = s -> s.length() == 0;
String s = "";
if(isEmptyStr.test(s)) // if(s.length() == 0)
System.out.println("This is an empty String.");
Bi가 붙음. "두개"를 의미. -> 매개변수를 두개를 받음.
매개변수 3개 이상의 함수형 인터페이스가 필요하면, 직접 만들어야 한다
@FunctionalInterface
interface TriFunction<T,U,V,R> {
R apply(T t, U u, V v);
}
매개 변수의 타입과 반환 타입이 일치하는 함수형 인터페이스 -> 타입을 하나만 적어줘도 된다.
Unary : 단항 / Binary : 이항
@FunctionalInterface
public interface UnaryOperator<T> extends Function<T, T> {
static <T> UnaryOperator<T> identity() {
return t -> t;
}
}