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();
}
我正在制作一个在另一个线程中执行的方法,因为它可能需要一些时间。但是,我想通知调用者操作将完成以及是否成功。为此,我需要一个 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();
}