함수형 인터페이스

HyeBin, Park·2022년 6월 10일
0

Overview

  • 함수형 인터페이스란 1개의 추상 메서드를 갖는 인터페이스
  • java 8 부터 인터페이스는 default method를 포함할 수 있다.
  • 여러 개의 default method가 있어도 추상 메서드가 오직 하나면 함수형 인터페이스
  • 자바의 람다 표현식은 함수형 인터페이스만 사용 가능

기본 함수형 인터페이스

🏃‍♀️ Runnable

  • 인자와 반환 값이 없는 인터페이스 () -> void
  • 이름 그대로 실행만 할 수 있다.

사용하기

🌳 Supplier

  • 인자를 받지 않고 T타입의 객체를 반환 () -> T
  • 공급자

사용하기

👩 Consumer

  • T 타입의 객체를 인자로 받고 반환 값은 없음 T -> void
  • andThen을 사용하면 두 개 이상의 Consumer를 연속적으로 실행할 수 있다.

사용하기

🎃 Function

  • T 타입의 인자를 받고 R 타입의 객체를 반환 T -> R

사용해보기

compose

  • 두 개의 Function으로 새로운 Function 객체를 만들어주는 메서드
  • andThen과 실행 순서가 반대이다.
  • compose에 인자로 전달되는 Function을 먼저 수행한다.

🐢 Predicate

  • T 타입 인자를 받고 boolean을 반환 `T -> boolean

사용해보기

and() or()

  • and() : 두 개의 Predicate가 true일 때 true 반환
  • or() : 두 개의 Predicate 중 하나만 true여도 true 반환

isEqual()

  • 인자로 전달되는 객체와 같인지 체크하는 Predicate 객체를 만든다.

🗻 Callable

  • 인자가 없고 T 타입 객체를 반환한다. () -> T
  • call() 메소드 수행 중 Exception을 발생시킬 수 있다.

Callable과 Runnable의 차이

  • Runnable은 Thread에 인자로 바로 전달할 수 있다.
  • Callable은 Tread에 인자로 전달할 수 없다.

0개의 댓글