У меня есть вопрос относительно оператора MVEL null-safe (?
).
Скажем, у меня есть следующий класс Java:
public class Traveler {
private Set<String> visitedCountries;
public Set<String> getVisitedCountries() {
return visitedCountries;
}
}
Если у меня есть такое выражение MVEL:
traveler.visitedCountries.contains("France")
Я получаю NullPointerException
, если поле visitedCountries
пустое. Чтобы обойти это, я могу использовать null-safe оператор:
traveler.?visitedCountries.contains("France")
Если visitedCountries
равно null, это выражение оценивается как null вместо создания NPE.
Мой вопрос таков: работает ли нулевой безопасный оператор при вызовах методов? Например:
traveler.getVisitedCountries().contains("France")
выдаст NullPointerException
, если getVisitedCountries()
вернет null.
Но что произойдет, если я вставлю null-safe оператор? Что будет делать следующее, если поле visitedCountries
пустое?
traveler.?getVisitedCountries().contains("France")