详解Java8特性之接口默认方法

xiaoxiao2021-02-28  107

#是什么 Java8中新增了接口的默认方法,简单来说就是让接口可以自己有实现方法,不许要实现类去实现。

#有什么用 想象一种情况,你定义了一个接口A,假如里面有几个抽象方法。然后什么B,C,D,E…一大堆类去实现了A接口里面的几个抽象方法。那么现在问题来了,如果要在A中新加一个抽象方法,那么所有的实现类都要去实现这个抽象方法,不是很麻烦吗?这个时候默认方法就派上用场了,只需要再A中自己实现这个新添加的方法就好了,所有的实现类也可以用了。最典型的例子,Iterable接口就增加了这么一个默认方法

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

我们就可以这么使用该默认方法迭代打印集合中的元素

List<Integer> integers = new ArrayList<Integer>(); integers.add(1); integers.add(2); integers.add(3); integers.forEach(System.out::println);

#怎么用

##接口的默认方法 接口的默认方法定义很简单,就是在方法返回值前使用 default 关键字修饰,如下面这个接口

public interface MyFunction<T> { void
转载请注明原文地址: https://www.6miu.com/read-31970.html

最新回复(0)