0
我对MVEL无效(?
)操作符有疑问。MVEL Null-Safe操作符是否在方法上工作?
说我有下面的Java类:
public class Traveler {
private Set<String> visitedCountries;
public Set<String> getVisitedCountries() {
return visitedCountries;
}
}
如果我有一个MVEL表达这样的:
traveler.visitedCountries.contains("France")
我得到了NullPointerException
如果visitedCountries
字段为空。为了解决这个问题,我可以使用空安全操作员:
traveler.?visitedCountries.contains("France")
如果visitedCountries
为null,则表达式的值为null,而不是抛出NPE的。
我的问题是这样的:null安全的操作符是否在方法调用上工作?例如:
traveler.getVisitedCountries().contains("France")
将抛出一个NullPointerException
如果getVisitedCountries()
返回null。
但是如果我把无效操作符放进去会发生什么?如果字段visitedCountries
为空,以下内容会做什么?
traveler.?getVisitedCountries().contains("France")