Java8的default关键字

2022-03-24  本文已影响0人  哈哈11122

1.default关键字是为了解决什么问题?

首先,之前的接口是个双刃剑,好处是面向抽象而不是面向具体编程,缺陷是,当需要修改接口时候,需要修改全部实现该接口的类。
java 8 之前的Iterable接口里没有 foreach 方法,通常能想到的解决办法是在JDK里给相关的接口添加新的方法及实现。然而,对于已经发布的版本,是没法在给接口添加新方法的同时不影响已有的实现。所以引进了default方法。他们的目的是为了解决接口的修改与现有的实现不兼容的问题。

2.使用范例
Iterable增加了default方法forEach()。

public interface Iterable<T> {
    default void forEach(Consumer<? super T> action) {
        Objects.requireNonNull(action);
        for (T t : this) {
            action.accept(t);
        }
    }
}
上一篇 下一篇

猜你喜欢

热点阅读