这两个
我知道,例如
List
有什么区别吗?List<Something> a;
List<? extends Something> b;
我知道,例如
List<Object> a;
List<?> b;
List c;
并且
List<Something> a;
List<? extends SomeInterfaceSomethingImplements> b;
这些都是不同的,但如果将Something
替换为Object
,它们是否不同呢?
List<Object> a;
List<? extends Object> b;
List<Object>
只允许您将List<Object>
分配给它。由于类型擦除,List<String>
不被视为List<Object>
。声明为List<? extends Object>
的引用可以分配属于Object
的任意子类的元素列表(对于Java中的所有类都成立)。这可能意味着List<Object>
、List<String>
、List<Whatever>
。 - toniedzwiedzString
和Object
已经存在,只是被检查了,与擦除类型无关。 - Bernhard Barker<Date>
和<? extends Serializable>
。而在我的情况下,例如比较的是<Date>
和<? extends Date>
。 - PurkkaKoodari