[Java] Functional Interface

9359 ワード

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 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);
  • 付加機能が非常に多い