甚至可能吗?他们的Git页面暗示如此。目前,只能在简单的上下文中声明vararg函数,但出于我的目的,我需要类似的东西:
func(1,2,3,4,5)+func(1,2)+func(1,2,3)
在这种情况下,简单地声明具有可变数量参数的本地函数不会起作用,因为表达式求值程序只能有一个定义。
我还想避免为每个n
参数创建函数的愚蠢解决方案......
答案 0 :(得分:0)
String formula= "a * sin(b) - 35 / (c - 2)"; //3 var
String formula2= "a * sin(b) - d / (c - 2)"; //4 var
String[] ve = new String[3];
ve[0] = "a";
ve[1] = "b";
ve[2] = "c";
Map<String, Double> vars = new HashMap<>();
vars.put("a", 1.5);
vars.put("b", 2.0);
vars.put("c", 3.2);
//----------------------Here func(string ....
Expression e = new ExpressionBuilder(formula)
.variables(ve)
.build()
.setVariables(vars);
double result = e.evaluate();