자바의 신 2를 정리했습니다.
java.util.functional 패키지
java 8에서 제공하는 주요 Functional 인터페이스는 다음과 같이 있다.
- Predicate
- Supplier
- Consumer
- Function
- UnaryOperator
- BinaryOperator
Predicate
test()라는 메소드가 있으며, 두 개의 객체를 비교할 때 사용하고 boolean을 리턴한다.
추가로 and(), negate(), or() 이라는 default 메소드가 구현되어 있으며, isEqual() 이라는 static 메소드도 존재한다.
Supplier
get() 메소드가 있으며, 리턴값은 generic으로 선언된 타입을 리턴한다. 다른 인터페이스들과는 다르게 추가적인 메소드는 선언되어 있지 않다.
Consumer
accept() 라는 매개 변수를 하나 갖는 메소드가 있으며, 리턴값이 없다. 그래서, 출력을 할 때 처럼 작업을 수행하고 결과를 받을 일이 없을 때 사용한다.
Function
apply() 라는 하나의 매개 변수를 갖는 메소드가 있으며, 리턴값도 존재한다. 이 인터페이스는 Function<T,R> 로 정의되어 있어, Generic 타입을 두개 갖고 있다. 앞에 있는 T 는 입력 타입, 뒤에있는 R 은 리턴 타입을 의미한다. 즉, 변환을 할 필요가 있을 때 이 인터페이스를 사용한다.
UnaryOperator: A unary operator from T → T
apply() 라는 하나의 매개 변수를 갖는 메소드가 있으며, 리턴값도 존재한다. 단, 한 가지 타입에 대하여 결과도 같은 타입을 경우 사용한다.
BinaryOperator: A binary operator from (T, T) → T
apply() 라는 두개의 매개 변수를 갖는 메소드가 있으며, 리턴값도 존재한다. 단, 한 가지 타입에 대하여 결과도 같은 타입일 경우 사용한다.
'자바 & 스프링' 카테고리의 다른 글
PreparedStatement 쿼리를 사용하는 이유 (0) | 2021.11.30 |
---|---|
JPA allocationSize default 값이 50인 이유 (0) | 2021.11.30 |
java - thread 동기화 (0) | 2021.11.30 |
java - Stream (0) | 2021.11.30 |
Java 8 Lambda — 1 (0) | 2021.11.30 |