【发布时间】:2018-04-10 09:09:12
【问题描述】:
我试图深入了解下限通配符的用法。我正在尝试编写一个通用方法copy,它将一个List 的内容复制到另一个。我想出了这个方法签名:
<T> void copy(List<T> dest, List<? extends T> src)
我认为这个签名很全面,可以解决所有场景。但是,我看到在 Java Collections 类中,方法签名是这样的:
<T> void copy(List<? super T> dest, List<? extends T> src)
我不明白他们为什么使用List<? super T> dest 而不仅仅是List<T> dest。他们的签名是否有一些额外的灵活性?
【问题讨论】:
-
你可以用反引号包围内联代码,以避免 HTML 吃掉你的泛型。