我有一个有两种方法的JAVA类.第一个是main方法,第二个是method1().
让我们说以下是这个类:
public class SomeClass() { public static void main(String[] args) { SomeClass myObj = new SomeClass(); Mapmap = new HashMap (); map.put("obj", myObj); MVEL.eval("System.out.println(\"I am inside main method\");obj.method1();",map); } public static void method1(List listOfStrings){ System.out.println("I am inside method 1"); } }
现在您可以在表达式中看到,要调用method1,我需要将列表作为参数传递.怎么做?表达式需要进行哪些更改?如果我想在程序中传递动态参数怎么办?
您可以创建一个List
或来自其他来源作为参数.
您需要注意的事情就是放入用于评估的
map
对象内部MVEL
.
如上所述需要通过列表 - > obj.method1(myList);
下面的工作代码
public class SomeClass { public static void main(String[] args) { SomeClass myObj = new SomeClass(); Mapmap = new HashMap (); map.put("obj", myObj); List listOfStrings = new ArrayList (); listOfStrings.add("my "); listOfStrings.add("List "); listOfStrings.add("is printing"); map.put("obj", myObj); map.put("myList", listOfStrings); MVEL.eval("System.out.println(\"I am inside main method\");obj.method1(myList);",map); } public static void method1(List listOfStrings) { System.out.println("I am inside method 1"); for (String s : listOfStrings) { System.out.print(s); } } }
产量
I am inside main method I am inside method 1 my List is printing