Java 8将lambda expressions与包java.util.function
一起引入。该软件包基本上由
() → T
t -> void
t -> r
t -> boolean
t -> t
我想知道为什么没有经典回调的标准接口:零参数和没有返回值:
() -> void
示例实施:
@FunctionalInterface
interface Callback {
void call();
default Callback andThen(Callback after) {
Objects.requireNonNull(after);
return () -> {
call();
after.call();
};
}
}
示例用例:
MyTask task = new MyTask();
AtomicInteger finishedTasks = new AtomicInteger();
task.finished(() -> System.out.println(finishedTasks + " tasks finished"));
task.finished(() -> schedule(task, 1, TimeUnit.HOURS));
schedule(task, 1, TimeUnit.HOURS));
最接近的界面是Runnable,但这与多线程有点太多了。
我的问题:
@FunctionalInterface
注释的类列表?