return 无效并传递布尔参数的功能接口

Functional interface that return void and passes a boolean parameter

我正在制作一个在另一个线程中执行的方法,因为它可能需要一些时间。但是,我想通知调用者操作将完成以及是否成功。为此,我需要一个 returns 什么都没有(我不需要回调的结果)并传递一个布尔值的功能接口。

示例代码:

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 中,还是我必须自己制作一个?

方法 void call(boolean successful) 可以用 Consumer<Boolean> 表示为 void accept(Boolean b),它内置于 java 中。这将使您不必制作自己的功能界面。

因此:

public void sendAsync(Command command, Consumer<Boolean> callback) {
    new Thread(() -> {
        boolean successful = send(command);
        if(callback != null)
            callback.accept(successful);
    }).start();
}