泛型第二个类型限制需要写吗?

private TimestampComparator<BaseBean> dataComparator = new TimestampComparator<>();

以前都是前后都写上类型,偶然发现后面不写也可以(编译通过也没有警告)

在开发中,大家都是怎么做的?有没有参考的标准?

阅读 4.2k
3 个回答

完全不用写。好像说之前需要写,被喷了。

JDK1.7及以上可以省略。

Java的一颗语法糖,这个还有个名称叫宝石语法。JDK1.7以后不推荐写。
至于原理,涉及到了Java泛型的内部实现方式,不同于C#的真实泛型实现(类型膨胀),Java通过类型擦除和强制类型转换实现的伪泛型。
对于运行期的Java来说,ArrayList<Integer>和ArrayList<String>就是同一个类。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题