Notice
Recent Posts
Recent Comments
Link
«   2024/05   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
Tags
more
Archives
Today
Total
관리 메뉴

보근은 참고 있다

Functional Interface 본문

Language/자바

Functional Interface

보근 2020. 11. 1. 19:48

 

 

 

 

함수형 인터페이스

 

 함수형 프로그래밍이란, 데이터의 처리를 수학적 함수의 계산으로 취급하고 함수를 1등 시민으로 취급하는 프로그래밍 기법이다. 함수형 프로그래밍은 상태와 가변 데이터를 멀리하여 부작용이 없도록 한다.

 

 자바는 함수형 프로그램 언어가 아니라 함수가 1등 시민이 아니다. 그렇기 때문에 함수를 리턴하지도, 파라미터로 받지도, 변수에 담지도 못한다. 

 

 자바는 대신에 함수형 인터페이스를 지원한다. 함수형 인터페이스는 단 하나의 추상 메소드를 가진 인터페이스이다. @FunctionalInterface 어노테이션을 붙여주면 확실히 할 수 있다. 함수형 인터페이스들은 익명 객체의 구현으로 동작하며, 간편하게 익명 객체를 구현하는 람다식으로 그 구현을 한다.

 

 

 

 

 

 

함수형 인터페이스의 종류

 

  • Function<T, R> - T 값을 받아 동작 수행 후, R로 리턴. apply().
  • UnaryOperator<T> - T 값을 받아 동작 수행 후, T로 리턴. apply().
  • Consumer<T> - T 값을 받아 동작 수행. 리턴 X. accept().
  • Supplier<T> - 값을 받지 않고, 동작 수행 후 리턴 T. get().
  • Predicate<T> - T 값을 받아 동작 수행 후, boolean으로 리턴. test().
  • Runnable - 파라미터 X, 리턴 값도 X. run().
  • 등등 java.util.function에 훨 많음. Runnable은 java.lang임.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

'Language > 자바' 카테고리의 다른 글

자바의 Upcasting과 Downcasting  (0) 2021.07.18
String vs StringBuilder vs StringBuffer  (0) 2021.07.17
Stream  (0) 2020.10.31
Optional  (0) 2020.10.31
SOLID (객체 지향 설계 원칙)  (0) 2020.10.28
Comments