为什么Iterable没有明确定义为功能接口?

时间:2017-11-10 15:51:35

标签: java interface java-8 functional-interface

从Java 9开始,Iterable定义如下(为简洁起见,没有文档):

public interface Iterable<T> {
    Iterator<T> iterator();

    default void forEach(Consumer<? super T> action) {
        Objects.requireNonNull(action);
        for (T t : this) {
            action.accept(t);
        }
    }

    default Spliterator<T> spliterator() {
        return Spliterators.spliteratorUnknownSize(iterator(), 0);
    }
}

我们可以看到,这个接口只包含一个抽象方法。由于此接口中的一个或多个方法使用default关键字,因此自Java 8发布以来必须编辑此接口(文档定义@since 1.8,但未包含在此问题中)。

出于这些原因,为什么Iterable未使用@FunctionalInterface注释定义?

0 个答案:

没有答案