请问个泛型的问题

leetow2006 2019-08-28 04:45:51
我在看反射时,看到代码:
Class<?> cls=java.util.Date.class;
可是如果这样:Class cls=java.util.Date.class;
也是可以的。
请问:如果不要问号(?),是不是表示Class<Object>
另外:有没有必须用<?>这个符号的?能不能举个例子
...全文
192 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
qq_41964172 2019-08-30
  • 打赏
  • 举报
回复
目前发现泛型在遍历的时候挺好用,别的地方好像没啥用
oh_Maxy 2019-08-29
  • 打赏
  • 举报
回复
最好养成写的习惯。
泛型是个历史遗留问题,老版本编译器不支持类型检查,新版本想支持类型检查,为了兼容老版本,做了泛型,在编译时检查,运行时擦除。
qybao 2019-08-29
  • 打赏
  • 举报
回复
泛型(不管什么类型)会擦写为object,但并不等于泛型为Object,也就没有(?)问号并不等价于Class<Object>
在你这个例子中,不要?也可以,只是出现编译警告而已
maradona1984 2019-08-29
  • 打赏
  • 举报
回复
引用 4 楼 leetow2006 的回复:
泛型(不管什么类型)会擦写为object,但并不等于泛型为Object =============== 这句话怎么理解?既然为object,为什么说不等于Object?
编译期不等于,编译结束等于,运行期还是能通过反射拿到具体的泛型类型,其实你直接理解为不等于就行了
qybao 2019-08-29
  • 打赏
  • 举报
回复
泛型擦写是在运行期,但是XXX<Object>会在编译器check,所以并不等价
在另一个帖子给你举例说明了
leetow2006 2019-08-29
  • 打赏
  • 举报
回复
泛型(不管什么类型)会擦写为object,但并不等于泛型为Object
===============
这句话怎么理解?既然为object,为什么说不等于Object?
YouZhaBaoZi 2019-08-28
  • 打赏
  • 举报
回复
<?>指钻石运算符 具体的可以看 https://www.jianshu.com/p/03a46271ffd9 java本身没有泛型 一个语法糖而已 加不加其实运行时没啥区别

62,612

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧