함수적 인터페이스 3

자바 기본서를 다시 읽다. 5 - 함수적 인터페이스의 Default Method

4강에서 알아보았던 함수적 인터페이스들은 andThen()과 compose()라는 디폴트 메소드를 가지고 있다. 이 디폴트 메소드들은 첫번째 메소드의 처리결과를 두번째 메소드의 매개값으로 넘겨주지만, 인터페이스AB = 인터페이스A.andThen(인터페이스B); or 인터페이스AB = 인터페이스B.andThen(인터페이스A); 최종결과 = 인터페이스AB.method(); 위와같이 인터페이스 AB 의 method()를 호출하기 위해 매개값으로 인터페이스 A와 B의 연산값을 넘겨준다면 andThen은 인터페이스A 호출 -> 인터페이스B 호출 compose는 인터페이스B 호출 -> 인터페이스A 호출을 먼저 한다. Consumer와 Function API를 사용한 코드를 통해 알아보자. import java.ut..

Study/Java 2022.03.27

자바 기본서를 다시 읽다. 4 - 표준 API의 함수적 인터페이스

자바 8에서부터는 빈번하게 사용되는 함수적 인터페이스(Functional Interface)는 java.util.function 표준 API 패키지로 제공한다. 이 패키지에서 제공하는 함수적 인터페이스의 목적은 메소드 또는 생성자의 매개 타입으로 사용되어 람다식을 대입할 수 있게 함이다. 함수적 인터페이스는 크게 Consumer, Supplier, Function , Operator, Predicate로 나뉘는데 각각의 특징은 아래와 같다. Consumer : 매개값 O , 리턴값 X Supplier : 매개값 X, 리턴값 O Function : 매개값 -> 리턴값으로 타입 변환 Operator : 매개값 -> 리턴값으로 값 연산 Predicate : 매개값 -> true/false 리턴 Consumer..

Study/Java 2022.03.16

자바 기본서를 다시 읽다. 3 - 로컬클래스와 익명객체, 그리고 람다식 (2)

이제 람다식을 정리해보자. 앞서 로컬클래스와 이름 없이 사용하는 로컬클래스인 익명 객체에 대해 알아보았다. 그리고 이 람다식은 런타임시 익명객체를 생성해주는 함수 생성 식이다. 이를 사용하면 자바 코드가 매우 간결해주고 컬렉션의 요소를 필터링하거나 매핑해서 원하는 결과를 쉽게 집계할 수 있다. 람다식은 아래와 같이 인터페이스 변수 = 람다식의 형태로 작성된다. Runnable runnable = () -> {}; 이렇게 보면 자바의 메소드를 선언하는 것 처럼 보이지만, 자바는 메소드만을 단독으로 생성할 수 없고, 항상 클래스의 구성 멤버로 선언하기 때문에 자바는 이 메소드를 가지는 객체를 생성하고 인터페이스 변수에 대입된다. 위 코드는 Runnable 변수에 대입되므로 람다식은 Runnable 익명 구현..

Study/Java 2022.03.15