1
時間がかかるため、別のスレッドで実行するメソッドを作成しています。しかし、私は、呼び出し元に、操作が完了していることと成功したことを通知したい。これを行うには、何も返さない関数呼び出しが必要です(コールバックの結果は必要ありません)。voidを返し、ブール値のパラメータを渡す機能的インタフェース
例コード:
public boolean send(Command command) {
try {
//long stuff
return true;
} catch(Exception ex) {
//logging error
return false;
}
}
public void sendAsync(Command command, MyCallback callback) {
new Thread(() -> {
boolean successful = send(command);
if(callback != null)
callback.call(successful);
}).start();
}
のような何か:
void call(boolean successful);
はすでにJavaで存在しているか、私は1つを自分で行う必要がありますか?
どのようにあなたはそれがvoidを返す場合、操作が成功した知っているだろうか? –
@JakeMiller機能的なインターフェイスは操作を実行していません。操作が成功し、実際の操作の後に実行された場合にのみレポートされます – Winter
あなたは自分でこれを定義できません。結果が必要ない場合は、なぜパラメータがありますか? –