람다와 같이 사용해서 더 유연한 코드를 만들기 위해
자바에선 기본 함수형 인터페이스를 제공한다.
종류는 크으게는 5개가 있다.
Consumer<T> = return 값 없이 T 타입 사용 - accpet() 를 씀
Supplier<T> = 파라미터 없이 T return - get() 을 씀
Function<A,B> = A를 B로 매핑 - apply() 를 씀
function<A,B> A를 받고 B로 리턴
ToIntFunction<A> 같은 경우는 A타입을 받고 Int형으로 매핑
Operator = 연산 후 리턴 - 람다식을 받는다.
predicate = 파라미터 받고 boolean 리턴 - test() 사용
이 인터페이스 내에 디폴트 메소드가 존재하는 경우도 있다.
andThen() = A.andThen(B); A실행하고 실행한 값 리턴 -consumer에 있음
compose() = A.compose(B) B실행하고 그 결과를 A의 파라미터로 전달 -function, operator 에 있음
and(), or(), negate(), - && , || , ! 과 같음 predicate 에 있음
static메소드
isEqual() - predicate 에 있다.