インタフェース | 説明 |
---|---|
BiConsumer<T,U> |
2つの入力引数を受け取って結果を返さないオペレーションを表します。
|
BiFunction<T,U,R> |
2つの引数を受け取って結果を生成する関数を表します。
|
BinaryOperator<T> |
同じ型の2つのオペランドに作用してオペランドと同じ型の結果を生成する演算を表します。
|
BiPredicate<T,U> |
2つの引数の述語(boolean値関数)を表します。
|
BooleanSupplier |
boolean 値の結果のサプライヤを表します。 |
Consumer<T> |
単一の入力引数を受け取って結果を返さないオペレーションを表します。
|
DoubleBinaryOperator |
2つの
double 値オペランドに作用してdouble 値の結果を生成する演算を表します。 |
DoubleConsumer |
単一の
double 値引数を受け取って結果を返さないオペレーションを表します。 |
DoubleFunction<R> |
1つのdouble値引数を受け取って結果を生成する関数を表します。
|
DoublePredicate |
1つの
double 値引数の述語(boolean値関数)を表します。 |
DoubleSupplier |
double 値の結果のサプライヤを表します。 |
DoubleToIntFunction |
1つのdouble値引数を受け取ってint値の結果を生成する関数を表します。
|
DoubleToLongFunction |
1つのdouble値引数を受け取ってlong値の結果を生成する関数を表します。
|
DoubleUnaryOperator |
単一の
double 値オペランドに作用してdouble 値の結果を生成する演算を表します。 |
Function<T,R> |
1つの引数を受け取って結果を生成する関数を表します。
|
IntBinaryOperator |
2つの
int 値オペランドに作用してint 値の結果を生成する演算を表します。 |
IntConsumer |
単一の
int 値引数を受け取って結果を返さないオペレーションを表します。 |
IntFunction<R> |
1つのint値引数を受け取って結果を生成する関数を表します。
|
IntPredicate |
1つの
int 値引数の述語(boolean値関数)を表します。 |
IntSupplier |
int 値の結果のサプライヤを表します。 |
IntToDoubleFunction |
1つのint値引数を受け取ってdouble値の結果を生成する関数を表します。
|
IntToLongFunction |
1つのint値引数を受け取ってlong値の結果を生成する関数を表します。
|
IntUnaryOperator |
単一の
int 値オペランドに作用してint 値の結果を生成する演算を表します。 |
LongBinaryOperator |
2つの
long 値オペランドに作用してlong 値の結果を生成する演算を表します。 |
LongConsumer |
単一の
long 値引数を受け取って結果を返さないオペレーションを表します。 |
LongFunction<R> |
1つのlong値引数を受け取って結果を生成する関数を表します。
|
LongPredicate |
1つの
long 値引数の述語(boolean値関数)を表します。 |
LongSupplier |
long 値の結果のサプライヤを表します。 |
LongToDoubleFunction |
1つのlong値引数を受け取ってdouble値の結果を生成する関数を表します。
|
LongToIntFunction |
1つのlong値引数を受け取ってint値の結果を生成する関数を表します。
|
LongUnaryOperator |
単一の
long 値オペランドに作用してlong 値の結果を生成する演算を表します。 |
ObjDoubleConsumer<T> |
オブジェクト値と
double 値の引数を受け取って結果を返さないオペレーションを表します。 |
ObjIntConsumer<T> |
オブジェクト値と
int 値の引数を受け取って結果を返さないオペレーションを表します。 |
ObjLongConsumer<T> |
オブジェクト値と
long 値の引数を受け取って結果を返さないオペレーションを表します。 |
Predicate<T> |
1つの引数の述語(boolean値関数)を表します。
|
Supplier<T> |
結果のサプライヤを表します。
|
ToDoubleBiFunction<T,U> |
2つの引数を受け取ってdouble値の結果を生成する関数を表します。
|
ToDoubleFunction<T> |
double値の結果を生成する関数を表します。
|
ToIntBiFunction<T,U> |
2つの引数を受け取ってint値の結果を生成する関数を表します。
|
ToIntFunction<T> |
int値の結果を生成する関数を表します。
|
ToLongBiFunction<T,U> |
2つの引数を受け取ってlong値の結果を生成する関数を表します。
|
ToLongFunction<T> |
long値の結果を生成する関数を表します。
|
UnaryOperator<T> |
単一のオペランドに作用してオペランドと同じ型の結果を生成する演算を表します。
|
// Assignment context
Predicate<String> p = String::isEmpty;
// Method invocation context
stream.filter(e -> e.getSize() > 10)...
// Cast context
stream.map((ToIntFunction) e -> e.getSize())...
このパッケージ内のインタフェースはJDKで使用される汎用の関数型インタフェースですが、これらはユーザーコードでも使用可能です。これらは、ラムダ式の適応先として考えられる関数形式の完全なセットを特定するわけではありませんが、一般的な要件をカバーできるだけの十分なセットを提供します。特定の目的のために提供される他の関数型インタフェース(FileFilter
など)は、使用されるパッケージ内で定義されています。
このパッケージ内のインタフェースには注釈FunctionalInterface
が付けられています。この注釈は、コンパイラがあるインタフェースを関数型インタフェースとして認識するのに必須のものではなく、設計の意図を捉え、その意図への偶発的な違反を特定する際にコンパイラの支援が得られるようにするための補助的な情報にすぎません。
関数型インタフェースは通常、関数、アクション、述語などの抽象的な概念を表します。関数型インタフェースのドキュメントを作成する際や関数型インタフェース型の変数に言及する際には、「このオブジェクトで表される関数」の代わりに「この関数」を使用するなど、そうした抽象的な概念に直接言及するのが一般的です。「指定された関数を...に適用する」のように、APIメソッドが関数型インタフェースを受け取ったり返したりすることがこの方法で書かれている場合、それは、対応する関数型インタフェースを実装するオブジェクトへの非null参照を意味するものと理解します(ただし、nullの可能性が明示されている場合はそのかぎりではありません)。
このパッケージ内の関数型インタフェースは、次のような拡張可能な命名規則に従います。
Function
(T
からR
への単一引数関数)、Consumer
(T
からvoid
への単一引数関数)、Predicate
(T
からboolean
への単一引数関数)、Supplier
(R
への引数なし関数)など、基本的な関数形式がいくつか存在しています。
BiFunction
(T
およびU
からR
への2引数関数)のように、基本形式を引数カウント接頭辞で修飾すれば、異なる引数カウントを示すことができます。
Function
を拡張した)UnaryOperator
や(BiFunction
を拡張した)BinaryOperator
など、基本関数形式を拡張した追加派生関数が存在しています。
ToIntFunction
のように、ToXxx
という接頭辞を付けます。それ以外の場合の型引数の特殊化は、DoubleConsumer
やObjIntConsumer
のように左から右に行われます。(型接頭辞Obj
は、ObjIntConsumer
のように、そのパラメータは特殊化しないで次のパラメータに移ることを示す場合に使用します。)IntToDoubleFunction
のように、これらのスキームを組み合わせることもできます。
ObjIntConsumer
)。
FunctionalInterface
バグまたは機能を送信
詳細なAPIリファレンスおよび開発者ドキュメントについては、Java SEのドキュメントを参照してください。そのドキュメントには、概念的な概要、用語の定義、回避方法、有効なコード例などの、開発者を対象にしたより詳細な説明が含まれています。
Copyright© 1993, 2014, Oracle and/or its affiliates. All rights reserved.