백기선님의 "더 자바, JAVA 8" 인프런 강의를 들으면서 정리한 내용이다.
이전에 한번 강의를 쭉 봤었는데, 그때는 "아... 저런게 있나보다" 싶었다. 근데 이제 슬슬 써보려고 하니 가물가물해서 이제는 정리하려고 한다. 다시 한번 강의를 들으면서 정리하는 글이다.
T 타입을 받아서 R타입을 리턴하는 함수 인터페이스
Function<Integer, Integer> plus10 = (i) -> i+10; plus10.apply(5); // 입력값 : 5 -> 반환값 : 15
함수 조합용 메서드
1. andThen : fn1.anThen(fn2).plus10 -> fn1를 먼저 실행하고 fn2를 실행.
2. compose : fn1.compose(fn2).plus10 -> fn2를 먼저 실행하고 fn1을 실행.
T타입을 받아서 아무값도 리턴하지 않는 함수 인터페이스
Consumer<Integer> printT = (i) -> System.out.println(i); printT.accept(10); //10 출력
T타입의 값을 제공하는 함수 인터페이스 -> 입력값이 없음.
Supllier<Integer> get10 = () -> 10; System.out.println(get10.get()) //10출력
T타입을 받아서 Boolean을 리턴하는 함수 인터페이스
Predicate<String> startsWithABC = (s) -> s.startWith("ABC"); startsWithABC.test("ABCDEFG") // TRUE!!
Function<T, R>의 특수한 형태로, 입력값 하나를 받아서 동일한 타입을 리턴하는 함수 인터페이스
Function<T, R>을 상속받으므로 Function에서 사용하는 메서드들을 사용 가능함.UnaryOperator<Integer> plus10 = (i) -> i+10; plus10.apply(5); // 입력값 : 5 -> 반환값 : 15
백기선님 인프런 강의
출처 : https://inf.run/QUGA