Comment passez-vous des valeurs NULL dans un HashMap?
L'extrait de code suivant fonctionne avec les options renseignées:
HashMap<String, String> options = new HashMap<String, String>();
options.put("name", "value");
Person person = sample.searchPerson(options);
System.out.println(Person.getResult().get(o).get(Id));
La question est donc de savoir ce qui doit être entré dans les options et/ou la méthode pour passer une valeur nulle?
J'ai essayé le code suivant sans succès:
options.put(null, null);
Person person = sample.searchPerson(null);
options.put(" ", " ");
Person person = sample.searchPerson(null);
options.put("name", " ");
Person person = sample.searchPerson(null);
options.put();
Person person = sample.searchPerson();
HashMap supporte les deux clés et valeurs null
http://docs.Oracle.com/javase/6/docs/api/Java/util/HashMap.html
... et autorise les valeurs NULL et la clé NULL
Votre problème n'est donc probablement pas la carte elle-même.
Vous pouvez noter les possibilités ci-dessous:
null
.Cependant, avec plusieurs null
clés et valeurs, il ne prendra qu'un null paire clé-valeur une fois.
Map<String, String> codes = new HashMap<String, String>();
codes.put(null, null);
codes.put(null,null);
codes.put("C1", "Acathan");
for(String key:codes.keySet()){
System.out.println(key);
System.out.println(codes.get(key));
}
la sortie sera:
null //key of the 1st entry
null //value of 1st entry
C1
Acathan
null
qu'une foisoptions.put(null, null);
Person person = sample.searchPerson(null);
Cela dépend de l'implémentation de votre méthode searchPerson
si vous voulez que plusieurs valeurs soient null
, vous pouvez les implémenter en conséquence.
Map<String, String> codes = new HashMap<String, String>();
codes.put(null, null);
codes.put("X1",null);
codes.put("C1", "Acathan");
codes.put("S1",null);
for(String key:codes.keySet()){
System.out.println(key);
System.out.println(codes.get(key));
}
sortie:
null
null
X1
null
S1
null
C1
Acathan
Il semble que vous essayez d'appeler une méthode avec un paramètre Map. Donc, pour appeler avec un nom de personne vide la bonne approche doit être
HashMap<String, String> options = new HashMap<String, String>();
options.put("name", null);
Person person = sample.searchPerson(options);
Ou tu peux le faire comme ça
HashMap<String, String> options = new HashMap<String, String>();
Person person = sample.searchPerson(options);
En utilisant
Person person = sample.searchPerson(null);
Pourrait vous obtenir une exception de pointeur null. Tout dépend de l'implémentation de la méthode searchPerson ().
C’est une bonne pratique de programmation pour éviter d’avoir null
valeurs dans une carte .
Si vous avez une entrée avec la valeur null
, il n’est pas possible de dire si une entrée est présente dans la carte ou à laquelle une valeur null
est associée.
Vous pouvez soit définir une constante pour de tels cas (Exemple: String NOT_VALID = "#NA"
), ou vous pouvez avoir une autre collection qui stocke des clés qui ont null
valeurs.
Veuillez vérifier ceci lien pour plus de détails.