오늘이라도
[Java] 자바에서 제공하는 함수형 인터페이스 본문
반응형
https://www.inflearn.com/course/the-java-java8#
백기선 개발자님의 더 자바, Java 8 강의를 들으면서 정리한 내용입니다.
public class Chap02 {
public static void main(String[] args) {
//인터페이스 객체를 선언하여 사용하는법
Plus10 plus10 = new Plus10();
//만든 Function 인터페이스는 apply로 사용한다
System.out.println(plus10.apply(1));
//바로 함수형 인터페이스를 사용하는 법
Function<Integer, Integer> plus10_2 = (number) -> number + 10;
Function<Integer, Integer> multiply2 = (i) -> i * 2;
//compose는 입력값을 가지고 파라미터함수를 먼저 적용하고 그 결과값을 다시 본래의 함수를 적용한다
Function<Integer, Integer> multiply2AndPlus10 = plus10_2.compose(multiply2);
System.out.println(multiply2AndPlus10.apply(1));
//andThen은 뒤에다가 붙임
Function<Integer, Integer> plus10AndMultiply2 = plus10_2.andThen(multiply2);
System.out.println(plus10AndMultiply2.apply(1));
/*------------------------------------------------- */
//Consumer는 리턴값이 없이 파라미터로 동작을 수행하는 인터페이스
Consumer<Integer> printT = (i) -> System.out.println(i);
printT.accept(10);
//Supplier는 어떤 값을 받아올것인가
Supplier<Integer> get10 = () -> 10;
System.out.println(get10.get());
//Predicate 어떤 값을 받아서 true false를 리턴하는 함수
//and or 등으로 조합가능
Predicate<String> startsWithUpcake = (s) -> s.startsWith("upcake");
Predicate<Integer> isEven = (i) -> i%2 == 0;
//UnaryOperator Function과 비슷하지만 입력타입과 출력타입이 같을 경우 사용
UnaryOperator<Integer> plus10_3 = (i) -> i +10;
}
}
반응형
'개발 공부 > Java' 카테고리의 다른 글
[Java] 인터페이스 간단하게 개념과 문법 (0) | 2021.08.30 |
---|---|
[Java] 함수형 프로그래밍과 람다식 (0) | 2021.08.18 |
[Java] 도대체 객체가 뭔데? : 객체, 클래스, 인스턴스 (2) | 2021.06.21 |