泛型 详细解读

<? extends T>是什么意思?

List<? extends Father> list1 = new ArrayList<>();

List<? super Father> list2 = new ArrayList<>();

PECS原则

最后看一下什么是PECS(Producer Extends Consumer Super)原则,已经很好理解了:

  • 频繁往外读取内容的,适合用上界Extends。
  • 经常往里插入的,适合用下界Super。

所以Supplier的泛型用<? extends T>,因为是返回,即取值。

    public T orElseGet(Supplier<? extends T> other) {
        return value != null ? value : other.get();
    }

参考

Java中<? extends T>和<? super T>的理解# - chenxibobo - 博客园

上一篇:Kubernetes v1.13.0 证书升级详解


下一篇:css常用清除浮动方式