在Java中将System属性设置为Null

时间:2010-12-01 11:46:19

标签: java system-properties

在我的单元测试中,我需要将“workingDir”系统属性设置为Null。

但我不能这样做,因为它给了我NullPointerException:

System.setProperty("workingDir", null);

我该怎么做?

3 个答案:

答案 0 :(得分:40)

您不能将属性设置为具有实际的空值 - 您只能清除它,如下所示:

System.clearProperty("workingDir");

答案 1 :(得分:5)

System.setProperty()在内部使用Properties对象实现,后者又使用旧的Hashtable。那些哈希表永远不会让你使用put()方法设置一个空值,所以它不能真的这样做。 Jon Skeet的帖子有解决方案。

答案 2 :(得分:2)

你不能这样做,因为setProperty方法抛出NullPointerException,如果它的任何参数为null。 您可以在那里放一个空字符串并在单元测试中检查它,或者只是像Jon建议的那样检查clearProperty。