我已经知道如何通过以下两种方式之一来初始化Java HashMap
// way 1: apply generic type saftey
HashMap<String, Integer> hashMap1 = new HashMap<String, Integer>();
// way 2: general without apply generic type saftey
HashMap<String, Integer> hashMap2 = new HashMap();
我的问题
最佳做法是
根据 Eclipse标记
类型安全:HashMap类型的表达式需要未经检查的转换 符合HashMap
new HashMap<String, Integer>();
但是根据 Sonar Linter
在此构造函数调用中将类型规范替换为 钻石运算符(“ <>”)。
new HashMap();
哪个是最好的?为什么?
答案 0 :(得分:5)
使用Java 7 Diamond运算符:
HashMap<String, Integer> hashMap2 = new HashMap<>();
Diamond <>允许编译器隐式推断类型