使用diamond使用有界通配符分配泛型类型

wfypjpf4  于 2021-06-26  发布在  Java
关注(0)|答案(0)|浏览(259)

这个问题在这里已经有答案了

带菱形运算符的通配符(3个答案)
使用通配符创建新的泛型对象(2个答案)
三小时前关门了。
以下代码: Set<? extends Integer> set = new HashSet<>(); 编译得很好。然而,使用菱形表示法的本质只是为了不再重写lhs类型参数。这意味着上述声明应等同于以下内容: Set<? extends Integer> set = new HashSet<? extends Integer>(); 但事实证明,事实并非如此。我猜这是合理的,因为编译器不知道对象的类型参数,因为它是通配符(“?”)。当不使用有界类型参数时,一切都正常,所以我认为这同样适用于任何情况。但是为什么允许语法呢?最后,第一条语句的类型参数是什么?
谢谢

暂无答案!

目前还没有任何答案,快来回答吧!

相关问题