[Java] Functional Interface

Fortice·2022년 4월 18일
0

Java

목록 보기
6/7

Supplier

파라미터 입력 없이 출력 제공

  • 기능 수행 : T get();

Consumer

파라미터 입력을 통해 작업 수행(소비) 후 리턴 없음

  • 기능 수행 : void accept(T t);
  •  default Consumer<T> andThen(Consumer<? super T> after) {
           Objects.requireNonNull(after);
           return (T t) -> { accept(t); after.accept(t); };
     }

BiConsumer

입력이 2개인 Consumer

Predicate

입력을 받아 연산에 따른 결과인 boolean 값 출력

  • 기능 수행 : boolean test(T t)
  •   default Predicate<T> and(Predicate<? super T> other) {
           Objects.requireNonNull(other);
           return (t) -> test(t) && other.test(t);
       }
       default Predicate<T> negate() {
           return (t) -> !test(t);
       }
       default Predicate<T> or(Predicate<? super T> other) {
           Objects.requireNonNull(other);
           return (t) -> test(t) || other.test(t);
       }
       static <T> Predicate<T> isEqual(Object targetRef) {
           return (null == targetRef) 
                   ? Objects::isNull
                   : object -> targetRef.equals(object);
       }
    	static <T> Predicate<T> not(Predicate<? super T> target) {
           Objects.requireNonNull(target);
           return (Predicate<T>)target.negate();
     	}

Comparator

입력을 받아 비교

  • 기능 수행 : int compare(T o1, T o2);
  • 추가 기능 매우 많음
profile
서버 공부합니다.

0개의 댓글