我已经用Java编程了好几年了,我确实使用了泛型,但似乎我的知识不完整,因为我不完全理解以下内容:
使用List<?>
代替List<T>
有什么好处?
我知道问号通配符是指任何类型(源自Object
),但T
也可以代表任何类型。那么使用前者而不是后者有一个隐藏的好处,我不知道呢?还是他们完全一样?
List<? extends T>
与List<E extends T>
的对比如何?
或MyType<?, ?>
与MyType<E, T>
?
编辑:我的问题的主旨与另一个问题here不同,并且没有一个答案回答了我的问题。例如:我了解List<?>
和List<Long>
之间的区别以及何时使用每个区别。我的问题是关于List<?>
与List<T>
的关系?和T可以代表任何类型。