Ответ 1
Вы не можете установить свойство для фактического нулевого значения - вы можете только очистить его, например:
System.clearProperty("workingDir");
В моих модульных тестах мне нужно установить системное свойство "workingDir" равным Null.
Но я не могу сделать что-то вроде этого, потому что он дает мне NullPointerException:
System.setProperty("workingDir", null);
Как я могу это сделать?
Вы не можете установить свойство для фактического нулевого значения - вы можете только очистить его, например:
System.clearProperty("workingDir");
System.setProperty()
внутренне реализуется с использованием объекта Properties
, который, в свою очередь, использует старый добрый Hashtable
. Эти хэш-таблицы никогда не позволяют установить нулевое значение с помощью метода put()
, так что это не может быть сделано по-настоящему. Сообщение Jon Skeet имеет решение.
Вы не можете этого сделать, поскольку метод setProperty
вызывает исключение NullPointerException, если любой из его аргументов равен нулю.
Вы можете поместить туда пустую строку и проверить ее в своих модульных тестах или просто clearProperty, как предположил Джон.