ナビゲーション・リンクをスキップ
Java(tm) Platform
Standard Edition 8

パッケージjava.util.function

関数型インタフェースは、ラムダ式やメソッド参照のターゲットとなる型を提供します。

参照: 説明

パッケージjava.util.functionの説明

関数型インタフェースは、ラムダ式やメソッド参照のターゲットとなる型を提供します。各関数型インタフェースには、その関数型インタフェースの関数メソッドと呼ばれる単一の抽象メソッドが含まれており、ラムダ式のパラメータや戻り値の型のマッチングや適応は、そのメソッドに対して行われます。関数型インタフェースは代入の文脈、メソッド呼び出しの文脈、キャストの文脈など、さまざまな文脈でターゲットの型を提供できます。

     // 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の可能性が明示されている場合はそのかぎりではありません)。

このパッケージ内の関数型インタフェースは、次のような拡張可能な命名規則に従います。

導入されたバージョン:
1.8
関連項目:
FunctionalInterface
ナビゲーション・リンクをスキップ
Java(tm) Platform
Standard Edition 8

バグまたは機能を送信
詳細なAPIリファレンスおよび開発者ドキュメントについては、Java SEのドキュメントを参照してください。そのドキュメントには、概念的な概要、用語の定義、回避方法、有効なコード例などの、開発者を対象にしたより詳細な説明が含まれています。
Copyright© 1993, 2014, Oracle and/or its affiliates. All rights reserved.