哇咔咔...{} 2021-12-08 09:29 采纳率: 88.9%
浏览 45
已结题

为什么第一次使用set()就可以,第二次添加就错误?泛型

问题如下,书上说不是不能给对象添加新信息吗?
为什么第一次添加可以成功,第二次就失败?
————————————————-——————————————————————————

img

  • 写回答

3条回答 默认 最新

  • huoxin4415 2021-12-08 10:22
    关注

    不清楚书中所列的代码片段相关上下文代码,单纯从泛型与通配符的语法规则上没有发现有类似“只能赋值一次”的约束。
    另外参考官网教程的说明:

    It's important to note that List<Object> and List<?> are not the same. You can insert an Object, or any subtype of Object, into a List<Object>. But you can only insert null into a List<?>. 
    

    指出使用通配符?声明的变量,在实际使用时只能写入null,也就是说系统不清楚通配符所指何物。
    官网教程地址:https://docs.oracle.com/javase/tutorial/java/generics/unboundedWildcards.html
    希望对你有所帮助。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)

报告相同问题?

问题事件

  • 系统已结题 12月22日
  • 已采纳回答 12月14日
  • 创建了问题 12月8日