Ahmednbil88:
Ya sé cómo inicializar Java HashMap
mediante el uso de una de las 2 formas siguientes
// 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();
Mi problema
¿Cuál es la mejor práctica
De acuerdo con Eclipse Marcador
Tipo de seguridad: La expresión de tipo HashMap necesita conversión sin marcar para ajustarse a HashMap
Por lo que su recomienda el uso de
new HashMap<String, Integer>();
Pero de acuerdo con Sonar Linter
Reemplazar la especificación del tipo en esta llamada al constructor con el operador de diamante ( "<>").
Por lo que su recomienda el uso de
new HashMap();
¿Cuál es el mejor? ¿Por qué?
Anton Hlinisty:
Utilice el operador de diamantes de Java 7:
HashMap<String, Integer> hashMap2 = new HashMap<>();
Diamond <> permite al compilador tipos Deducir implícitamente
Ver: Inferencia de tipos genéricos de creación de instancias