首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >类型参数在泛型对象实例化的构造函数中有用吗?

类型参数在泛型对象实例化的构造函数中有用吗?
EN

Stack Overflow用户
提问于 2014-04-03 07:09:50
回答 1查看 566关注 0票数 3

我知道从Java7开始,在实例化期间在构造函数中重复泛型类的类型是一种冗余。但是钻石运营商<>呢,是否可以选择重复呢?换句话说,我想知道这两者之间的区别:

代码语言:javascript
复制
List<String> Fruits = new ArrayList<>();

还有这个

代码语言:javascript
复制
List<String> Fruits = new ArrayList(); 

或者这个

代码语言:javascript
复制
 Map<Integer, String> students = new HashMap<>();

还有这个

代码语言:javascript
复制
 Map<Integer, String> students = new HashMap();

提前谢谢你

EN

回答 1

Stack Overflow用户

发布于 2014-04-03 07:11:09

是的,这是有区别的。菱形运算符只是指定整个泛型类型的快捷方式,因为它是可以推断的。这些是等效的:

代码语言:javascript
复制
List<String> Fruits = new ArrayList<>();

代码语言:javascript
复制
List<String> Fruits = new ArrayList<String>();

但是,由于根本没有尖括号,这意味着您使用的是原始类型,这与在类上使用泛型不同。这会生成一个未检查的分配警告,应该避免这种情况。

代码语言:javascript
复制
List<String> Fruits = new ArrayList();  // warning!
票数 8
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/22824845

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档