设置时没有提到数据类型

时间:2015-04-17 10:22:13

标签: java

写下面的内容可以吗?

Set<Integer> integs = new HashSet<>();

在&lt;&gt;里面,把它留空是没关系的吗?

4 个答案:

答案 0 :(得分:3)

从Java 7开始,编译器将推断出哈希集的数据类型,而无需将其写入两次。

请注意,在某些情况下,编译器可能无法推断类型,因此您可能会遇到更复杂方案的编译错误。

更多here

答案 1 :(得分:3)

是的,这是Java 7中引入的一项功能,其中<>称为菱形运算符。请参阅http://docs.oracle.com/javase/7/docs/technotes/guides/language/type-inference-generic-instance-creation.html

答案 2 :(得分:2)

如果您使用的是documentation

中所述的java 7或更高版本,请单击是
  

只要编译器可以从中推断类型参数,就可以用一组空的类型参数(&lt;&gt;)替换调用泛型类的构造函数所需的类型参数。上下文。这对尖括号非正式地称为钻石

答案 3 :(得分:0)

是。在您的情况下,它将在Java 7及更高版本中将其视为整数。请从Java文档中找到确认。 http://docs.oracle.com/javase/7/docs/technotes/guides/language/type-inference-generic-instance-creation.html