Upgrade Java SE 7 to Java SE 8 OCP Programmer(1Z0-810)対策 第二章 ラムダ式を使用する事前定義済みの型の使用
第二章よりJava8で追加された関数型インタフェースの各クラス、メソッドの仕様を追っていく。
各インタフェースの詳細まで追うのは辛いので取り扱わない…
■注意
正確な情報は下記リンクを参照してください。
■試験対策ページ
java.boot.by
■試験
Upgrade Java SE 7 to Java SE 8 OCP Programmer | Oracle Certification Exam
2.1. java.util.function パッケージのインタフェースについて説明する
多くの再利用可能な機能要件について、関数型インタフェースとラムダ式は取り込むことができる。
Java8の設計者は一般的なユースケースを取り込み、それらのためのライブラリを実装した。
java.util.functionと呼ばれる新しいパッケージは、一般的なユースケースに対する機能を提供する。
※WARNING※
このセクションで提示するインタフェースのリストは完全ではない。最も重要な部分の関数型メソッドのシグネチャのみ列挙する。
java.util.function.Predicate
パラメータの型: T
戻り値の型 : boolean
メソッドの詳細: 1つの引数の述語(boolean値関数)を表す。
package java.util.function; @FunctionalInterface public interface Predicate<T extends Object> { public boolean test(T t); }
java.util.function.Consumer
パラメータの型: T
戻り値の型 : void
メソッドの詳細: 単一の入力引数を受け取って結果を返さないオペレーションを表す。
package java.util.function; @FunctionalInterface public interface Consumer<T extends Object> { public void accept(T t); }
java.util.function.Function
パラメータの型: T
戻り値の型 : R
メソッドの詳細: 1つの引数を受け取って結果を生成する関数を表す。
package java.util.function; @FunctionalInterface public interface Function<T extends Object, R extends Object> { public R apply(T t); }
java.util.function.Supplier
パラメータの型: (なし)
戻り値の型 : T
メソッドの詳細: 結果のサプライヤを表す。サプライヤを呼び出すたびに新規もしくは異なる結果が返される必要はない。
package java.util.function; @FunctionalInterface public interface Supplier<T extends Object> { public T get(); }
java.util.function.ToDoubleFunction
パラメータの型: T
戻り値の型 : double
メソッドの詳細: double値の結果を生成する関数を表す。これは、Functionに対して、doubleを生成するようプリミティブ化を行ったもの。
package java.util.function; @FunctionalInterface public interface ToDoubleFunction<T extends Object> { public double applyAsDouble(T t); }
java.util.function.BiPredicate
パラメータの型: T,U
戻り値の型 : boolean
メソッドの詳細: 2つの引数の述語(boolean値関数)を表す。これは、Predicateを引数を2個取るようにしたもの。
package java.util.function; @FunctionalInterface public interface BiPredicate<T extends Object, U extends Object> { public boolean test(T t, U u); }
java.util.function.UnaryOperator
パラメータの型: T
戻り値の型 : T
メソッドの詳細: 単一のオペランドに対する操作に作用して同じ型の結果を生成する演算を表す。これは、オペランドと結果の型が同じである場合においてFunctionを特殊化したもの。
メモ:Functionクラスを拡張しており、Function.apply(Object)メソッドを引き継いでいる。
package java.util.function; @FunctionalInterface public interface UnaryOperator<T extends Object> extends Function<T, T> { }