JAVA 8 - 함수형 인터페이스

태히·2022년 5월 12일
0

JAVA8

목록 보기
1/2

시작하며

백기선님의 "더 자바, JAVA 8" 인프런 강의를 들으면서 정리한 내용이다.
이전에 한번 강의를 쭉 봤었는데, 그때는 "아... 저런게 있나보다" 싶었다. 근데 이제 슬슬 써보려고 하니 가물가물해서 이제는 정리하려고 한다. 다시 한번 강의를 들으면서 정리하는 글이다.

함수형 인터페이스

Function<T, R>

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을 실행.

Consumer< T >

T타입을 받아서 아무값도 리턴하지 않는 함수 인터페이스

Consumer<Integer> printT = (i) -> System.out.println(i);
printT.accept(10); 
//10 출력

Supplier< T >

T타입의 값을 제공하는 함수 인터페이스 -> 입력값이 없음.

Supllier<Integer> get10 = () -> 10;
  System.out.println(get10.get())
  //10출력

Predicate< T >

T타입을 받아서 Boolean을 리턴하는 함수 인터페이스

Predicate<String> startsWithABC = (s) -> s.startWith("ABC");
startsWithABC.test("ABCDEFG")
// TRUE!!

UnaryOperator< T >

Function<T, R>의 특수한 형태로, 입력값 하나를 받아서 동일한 타입을 리턴하는 함수 인터페이스
Function<T, R>을 상속받으므로 Function에서 사용하는 메서드들을 사용 가능함.

UnaryOperator<Integer> plus10 = (i) -> i+10;
plus10.apply(5);
// 입력값 : 5 -> 반환값 : 15

백기선님 인프런 강의
출처 : https://inf.run/QUGA

profile
하고싶은게 많은 개발자가 되고싶은

0개의 댓글