Définir la propriété système Null en Java
-
29-09-2019 - |
Question
Dans mes tests unitaires que je dois définir la propriété système « WorkingDir » Null.
Mais je ne peux pas faire somesing comme ça, parce que ça me donne NullPointerException:
System.setProperty("workingDir", null);
Comment puis-je faire?
La solution
Vous ne pouvez pas définir une propriété d'avoir une valeur nulle réelle - vous ne pouvez l'effacer, comme ceci:
System.clearProperty("workingDir");
Autres conseils
System.setProperty()
est mis en œuvre en interne à l'aide d'un objet Properties
, qui à son tour utilise le bon vieux Hashtable
. Ces hashtables ne vous permettent de définir une valeur null en utilisant theput()
méthode, donc il ne peut pas vraiment se faire de cette façon. Le poste de Jon Skeet a la solution.
Vous ne pouvez pas le faire, comme méthode de setProperty
jette NullPointerException si l'un des arguments avancés par elle est nulle.
Vous pouvez mettre là une chaîne vide et vérifiez dans vos tests unitaires ou simplement clearProperty, comme le suggère Jon.