MVEL“in”运算符不适用于java中的集合
我试图在代码中使用MVEL“in”运算符来计算表达式
List<String> countriesAvailable = new ArrayList<String>();
countriesAvailable.add("Australia");
countriesAvailable.add("France");
List<String> countriesVisited = new ArrayList<String>();
countriesVisited.add("Austria");
countriesVisited.add("France");
Map<String, List<String>> vars = new HashMap<String, List<String>>();
vars.put("countriesAvailable", countriesAvailable);
vars.put("countriesVisited", countriesVisited);
Boolean s = (Boolean) MVEL.eval("countriesVisited in countriesAvailable", vars);
System.out.println(s);
给出错误:语法错误或不兼容类型
# 1 楼答案
这是解决办法。您需要使用
containsAll
还请注意,您在第二个列表中拼错了澳大利亚。我不确定这是否是为了检查评估
Result = false
您还可以使用
java.util.Collections
执行不相交。从反面来看Result = true