Pergunta

Você pode usar uma instância initializer com um HashMap genérico?

Eu encontrei este código on-line, mas estou tendo problemas para convertê-lo para um HashMap genérico em vez de um HashMap básica:

someMethodThatTakesAHashMap(new HashMap(){{put("a","value-a"); put("c","value-c");}}); 
Foi útil?

Solução

Veja como:

class Foo {

  static void someMethodThatTakesAHashMap(HashMap<String, String> map) {
    System.out.println(map);  
  }

  public static void main(String[] args) {
    someMethodThatTakesAHashMap(new HashMap<String, String>(){{put("a","value-a"); put("c","value-c");}});
  }
}

Edit: sobre a supressão da série-ID: sim, você poderia fazer isso, mas eu reescrevê-lo como este:

public class Foo {

  static void someMethodThatTakesAHashMap(Map<String, String> map) {
    System.out.println(map);  
  }

  public static void main(String[] args) {
    HashMap<String, String> map  = new HashMap<String, String>();
    map.put("a","value-a"); 
    map.put("c","value-c");
    someMethodThatTakesAHashMap(map);
  }
}

Sem suprimir necessário, e muito melhor para ler, IMO.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top