Подтвердить что ты не робот

Настроить систему на Null в Java

В моих модульных тестах мне нужно установить системное свойство "workingDir" равным Null.

Но я не могу сделать что-то вроде этого, потому что он дает мне NullPointerException:

System.setProperty("workingDir", null);

Как я могу это сделать?

4b9b3361

Ответ 1

Вы не можете установить свойство для фактического нулевого значения - вы можете только очистить его, например:

System.clearProperty("workingDir");

Ответ 2

System.setProperty() внутренне реализуется с использованием объекта Properties, который, в свою очередь, использует старый добрый Hashtable. Эти хэш-таблицы никогда не позволяют установить нулевое значение с помощью метода put(), так что это не может быть сделано по-настоящему. Сообщение Jon Skeet имеет решение.

Ответ 3

Вы не можете этого сделать, поскольку метод setProperty вызывает исключение NullPointerException, если любой из его аргументов равен нулю. Вы можете поместить туда пустую строку и проверить ее в своих модульных тестах или просто clearProperty, как предположил Джон.