【发布时间】:2015-12-27 16:07:06
【问题描述】:
有什么区别
Map<String, String> exemple = new HashMap<>();
和
Map<String, String> exemple = new HashMap<String, String>();
【问题讨论】:
标签: java types declaration variable-declaration
有什么区别
Map<String, String> exemple = new HashMap<>();
和
Map<String, String> exemple = new HashMap<String, String>();
【问题讨论】:
标签: java types declaration variable-declaration
嗯,从技术上讲,两者都不是有效的 Java。他们应该是
Map<String, String> example = new HashMap<>();
或
Map<String, String> example = new HashMap<String, String>();
这两者在 Java 7 和 8 中没有真正的区别。但是,第一个示例在 Java7 之前的 Java 版本中无效,它在 Java 编译器中引入了有限的类型推断,并明确声明了类型参数在某些地方是不必要的。
如今,大多数 IDE 都会强调语句的第二种形式,因为它涉及不必要的重复。但是,这不是错误,它们都声明了完全相同的内容。
【讨论】:
关于您的第一个陈述(前提是末尾有圆括号):
关于您的第二个陈述(前提是末尾有圆括号):
【讨论】: