Does the MVEL Null-Safe operator work on methods? -


i have question regarding mvel null-safe (?) operator.

say have following java class:

public class traveler {      private set<string> visitedcountries;      public set<string> getvisitedcountries() {         return visitedcountries;     } } 

if have mvel expression this:

traveler.visitedcountries.contains("france") 

i nullpointerexception if visitedcountries field null. around this, can use null-safe operator:

traveler.?visitedcountries.contains("france") 

if visitedcountries null, expression evaluates null instead of throwing npe.

my question this: null-safe operator work on method invocations? example:

traveler.getvisitedcountries().contains("france") 

will throw nullpointerexception if getvisitedcountries() returns null.

but happens if put in null-safe operator? following if field visitedcountries null?

traveler.?getvisitedcountries().contains("france") 

as turns out, expression

traveler.?getvisitedcountries().contains("france") 

does observe null-safe operator. evaluate null here. unit test:

@test public void testmvelnullsafeonmethod() {     traveler traveler = new traveler();     // traveler visitedcountries field null     string expression = "traveler.getvisitedcountries().contains(\"france\")";     serializable exp = mvel.compileexpression(expression);     map<string, object> map = new hashmap<string, object>();     map.put("traveler", traveler);     boolean response = (boolean) mvel.executeexpression(exp, map);     asserttrue(response == null || !response); } 

Comments

Popular posts from this blog

ZeroMQ on Windows, with Qt Creator -

unity3d - Unity SceneManager.LoadScene quits application -

python - Error while using APScheduler: 'NoneType' object has no attribute 'now' -