Estou usando o HashMap no meu aplicativo e, às vezes, preciso adicionar uma chave (String) com um valor nulo (lista de objetos emty array). Mas o Netbeans 7.4 diz:
Exception in thread "main" java.lang.NullPointerException
at test.Version.main(Version.java:35)
Java Result: 1
para este código:
HashMap<String, ArrayList<Object[]>> d = null;
ArrayList<Object[]> a;
a = new ArrayList<>();
d.put("key1", a);
Eu não quero usar um MultiMap. Existe alguma outra maneira de resolvê-lo facilmente?
Respostas:
4 para resposta № 1Map<String, List<Object[]>> d = new HashMap<String, List<Object[]>>;
List<Object[]> a = new ArrayList<Object[]>();
d.put("key1", a);
Se d for nulo, então -> NullPointerException;)
5 para resposta № 2
Você está recebendo um NullPointerException
Porque d
é null
e tenta de-referenciá-lo com sua chamada para d.put("key1", a)
.
Você pode corrigir isso alterando sua inicialização de d
para
HashMap<String, ArrayList<Object[]>> d = new HashMap<String, ArrayList<Object[]>>();
Agora isso d
isn "t null, você pode usar os métodos nativos para HashMap
, gostar d.put("key1", a)
.
2 para resposta № 3
Você não pode ligar map.put
sem criar uma instância dele no início, seu mapa ainda é nulo.
Você precisa instanciar primeiro:
Map<String, ArrayList<Object[]>> d = new HashMap<String, ArrayList<Object[]>>();
e depois:
d.put("key1", a);
2 para resposta № 4
Você escreveu:
HashMap<String, ArrayList<Object[]>> d = null;
e então você tenta colocar o elemento em um valor nulo:
d.put("key1", a);
Você deve primeiro declarar a instância do HashMap:
HashMap<String, ArrayList<Object[]>> d = new HashMap<String, ArrayList<Object[]>>();