티스토리 뷰
728x90
반응형
Functional Programming
- 선언형 프로그래밍 (Declative Programming)
- What to do? 무엇을 해야 하는가?
- 일급객체로서의 함수 -> 함수를 객체로 표현
- 역할에 충실한 코드 -> 가독성, 유지 보수, 안정성, 확장성
- 패러다임의 전환 -> Stream, Optional
일급객체 First-Class Object
다른 객체들에 일반적으로 적용 가능한 연산을 모두 지원하는 객체를 가리킨다.
보통 함수에 인자로 넘기기, 수정하기, 변수에 대입하기와 같은 연산을 지원할 때 일급 객체라고 한다.
Functional Interface
- 하나의 abstract method만을 가지는 인터페이스 (Single Abstract Method Interface)
- 매개변수 하나 Function<T, R>, 두개 BiFunction<T, U, R> 사용, 세개 이상은 커스텀
- Consumer, DoubleConsumer, IntConsumer 등 다양한 인터페이스 :
Wrapper Class 보다 Primitive형을 사용하는게 메모리 절약 가능 - java.lang.Runnable, java.util.Comparator, java.util.concurrent.Callable, etc
Method Reference
- 클래스의 static method를 지정할 때
. Integer::parseInt - 선언된 객체의 instance method를 지정할 때
. str::length - 객체의 instance method를 지정할 때
. 클래스의 instance를 parameter로 넘겨 method를 실행 - 클래스의 constructor를 지정할 때
. Object::new
728x90
반응형
'Java' 카테고리의 다른 글
[Java] Json 변환 Jackson ObjectMapper (0) | 2022.08.01 |
---|---|
Primitive vs Wrapper Class (0) | 2022.03.20 |
Lambda Expression (0) | 2020.09.14 |
추상클래스 - 템플릿 메서드 (0) | 2020.09.03 |
에러 vs 예외 (0) | 2020.05.19 |
반응형
300x250