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