虽然我确实理解了泛型的一些角落情况,但我遗漏了以下示例的内容.
我有以下课程
1 public class Test<T> {
2 public static void main(String[] args) {
3 Test<? extends Number> t = new Test<BigDecimal>();
4 List<Test<? extends Number>> l =Collections.singletonList(t);
5 }
6 }
Run Code Online (Sandbox Code Playgroud)
第4行给出了错误
Type mismatch: cannot convert from List<Test<capture#1-of ? extends Number>>
to List<Test<? extends Number>>`.
Run Code Online (Sandbox Code Playgroud)
显然,编译器认为不同的不同?.虽然我的直觉告诉我,这是正确的.
任何人都可以提供一个例子,如果第4行合法,我会得到运行时错误吗?
编辑:
为了避免混淆,我用第=null3行替换了具体的赋值