Java 8中的功能回调

时间:2014-10-22 09:42:13

标签: java lambda java-8

Java 8将lambda expressions与包java.util.function一起引入。该软件包基本上由

的标准接口组成

我想知道为什么没有经典回调的标准接口:零参数和没有返回值:

  • 回调:() -> 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,但这与多线程有点太多了。

我的问题:

  • 您知道Java是否提供此界面吗?
  • 我在哪里可以找到使用@FunctionalInterface注释的类列表?

0 个答案:

没有答案