Search
Duplicate
📒

[Java Study] 10-x. Functionl Interfaces

상태
미진행
수업
Java Study
주제
Stream
4 more properties
참고

Functional Interface

NOTE
추상 메서드가 오직 하나인 인터페이스를 말한다!
@FunctionalInterface interface CustomInterface<T> { // abstract method 오직 하나 T myCall(); // default method 는 존재해도 상관없음 default void printDefault() { System.out.println("Hello Default"); } // static method 는 존재해도 상관없음 static void printStatic() { System.out.println("Hello Static"); } }
Java
복사
함수형 인터페이스 예제
추상 메서드가 하나라는 의미는, default method와 static method는 여러개 존재해도 상관없다.
@FunctionalInterface 어노테이션을 이용해서, 조건에 맞는지 검사해준다.

Java 에서 기본적으로 제공하는 Functionl Interfaces

NOTE
Java에서 기본적으로 많이 사용하는 함수형 인터페이스를 알아보자!!
기본적으로 제공하는 것만으로도 대부분 가능!

Predicate( test, T → boolean )

NOTE
Predicate ⇒ 인자 하나를 받아서 boolean을 반환한다.
@FunctinalInterface public interface Predicate<T>{ boolean test(T t); }
Java
복사

Consumer ( accept, T → void )

NOTE
Consumer ⇒ 인자하나를 받고 아무것도 리턴하지 않는다!
@FunctionalInterface public interface Consumer<T> { void accept(T t); }
Java
복사

Supplier ( get, () → T )

NOTE
Supplier ⇒ 아무런 인자를 받지 않고 T 타입의 객체를 리턴한다!
@FunctionalInterface public interface Supplier<T> { T get(); }
Java
복사

Function( apply, T → R )

NOTE
Function ⇒ T타입 인자를 받아서 R타입을 리턴한다!
@FunctionalInterface public interface Function<T, R> { R apply(T t); }
Java
복사

Comparator( compare, (T t1, T t2) → int )

NOTE
Comparator ⇒ T타입 인자를 2개 받아서 int를 반환한다!
@FunctionalInterface public interface Comparator<T> { int compare(T o1, T o2); }
Java
복사

Runnable ( run, () -> void )

NOTE
Runnable ⇒ 아무런 객체도 받지않고 아무것도 리턴하지 않는다.
@FunctionalInterface public interface Runnable { public abstract void run(); }
Java
복사

Callable( call, () → T )

NOTE
Callable ⇒ 아무런 인자를 받지 않고 T 타입을 호출한다!
@FunctionalInterface public interface Callable<V> { V call() throws Exception; }
Java
복사
Supplier하고 동일한데 별 차이 없는게 맞다. (등장하게된 배경이 좀 다름)