Инициализация Java HashMap? - PullRequest
       23

Инициализация Java HashMap?

0 голосов
/ 20 декабря 2018

Я уже знаю, как инициализировать Java HashMap, используя один из следующих 2 способов

// 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 Marker

Безопасность типов: выражение типа HashMap требует неконтролируемого преобразования для соответствия HashMap

enter image description here Так что егорекомендуем использовать

new HashMap<String, Integer>(); 

Но в соответствии с Sonar Linter

Заменить спецификацию типа в этом вызове конструктора оператором diamond ("<>").

enter image description here Поэтому рекомендуется использовать

new HashMap();

Какой из них лучше?Почему?

1 Ответ

0 голосов
/ 20 декабря 2018

Используйте оператор Java 7 diamond:

HashMap<String, Integer> hashMap2 = new HashMap<>();

Diamond <> позволяет компилятору неявно выводить типы

См .: Вывод типа для создания общего экземпляра

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...