Java 8のjava.util.function
パッケージには、次のものがあります。
- 機能:1つの引数を取り、1つの結果を生成します。
- 消費者:1つの引数を取り、何も生成しません。
- サプライヤ:引数をとらず、1つの結果を生成します。
- ...:プリミティブ、2つの引数などを処理する他のケース...
しかし、「引数を取らず、何も生成しない」場合を処理する必要があります。
これには何もありませんjava.util.functionnal
。
したがって、質問は次のとおりです。
「引数を取らず、何も返さない関数」の名前は何ですか?
Java 8では、その定義は次のようになります。
@FunctionalInterface
public interface InsertANameHere {
void execute();
}
エグゼキューターは既に存在し、別の目的があります:「サブミットされたRunnableタスクを実行するオブジェクト」。署名は一致せず(execute(Runnable):void
)、機能的なインターフェースすらありません。
Runnableは存在しますが、スレッドコンテキストに強くリンクされています。
- パッケージがある
java.lang
、ありませんjava.util.function
。 - javadocの状態:「Runnableインターフェイスは、インスタンスがスレッドによって実行されることを意図しているクラスによって実装する必要があります」。
- 「Runnable」という名前は、スレッド内で実行中のコードを示唆しています。
Runnable
RunnableはThread
(Executor
たとえば)他のクラスでも使用されているため、この時点でjavadoc は古くなっていると思います。
Runnable
Sのみ可能.run()
でThread
、S。実際、彼らは非常に一般的に、問題の説明を正確に目的のために使用している
java.util.function
パッケージに何も見つからなかった理由です。