19

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

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

System.setProperty("workingDir", null);

我该怎么做?

4

3 回答 3

55

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

System.clearProperty("workingDir");
于 2010-12-01T11:49:34.400 回答
5

System.setProperty()在内部使用Properties对象实现,该对象又使用良好的 old Hashtable。这些哈希表永远不会让您使用该put()方法设置空值,因此不能真正做到这一点。Jon Skeet 的帖子有解决方案。

于 2010-12-01T11:50:05.727 回答
2

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

于 2010-12-01T11:50:26.893 回答