Java 如何写朱尔表达式
最近我尝试了JUEL,现在我对如何编写一些我在文档中找不到的方法感到困惑 只是给我这个 如果我有Java 如何写朱尔表达式,java,juel,Java,Juel,最近我尝试了JUEL,现在我对如何编写一些我在文档中找不到的方法感到困惑 只是给我这个 如果我有context.setFunction(“meh”,“max”,BigDecimal.class.getMethod(“compareTo”,BigDecimal.class)),我想知道如何写出它 因为我们知道bigDecimal表达式是像foo.compareTo(bigDecimal)那样编写的 如何在表达式中写入此项?使用两种可能的答案轻松完成 由于SimpleContext允许您进行算术计
context.setFunction(“meh”,“max”,BigDecimal.class.getMethod(“compareTo”,BigDecimal.class)),我想知道如何写出它代码>
因为我们知道bigDecimal表达式是像foo.compareTo(bigDecimal)那样编写的代码>
如何在表达式中写入此项?使用两种可能的答案轻松完成
由于SimpleContext
允许您进行算术计算(在我的例子中),因此我将计算放在这里。我还使用ValueExpression
(我猜不在正确的位置)从SimpleContext
向我提供映射值。因此,这里是我所拥有的
context.setVariable("fii", factory.createValueExpression(new BigDecimal(3), BigDecimal.class));
context.setVariable("fee", factory.createValueExpression(new BigDecimal(5), BigDecimal.class));
ValueExpression e1 = factory.createValueExpression(context, "${fee}", BigDecimal.class);
ValueExpression e2 = factory.createValueExpression(context, "${fii}", BigDecimal.class);
String temp1 = (String)e1.getValue(context).toString();
String temp2 = (String)e2.getValue(context).toString();
context.setVariable("foo", factory.createValueExpression(new BigDecimal(temp1).add(new BigDecimal(temp2)), BigDecimal.class));
ValueExpression e = factory.createValueExpression(context, "${foo}", BigDecimal.class);// will return 8
但再一次,我真的不知道它对不对,所以我想出了第二个
创建一个类,创建一些需要2个参数的静态方法,现在开始。让我们假设这个名为Operate
public static BigDecimal add (BigDecimal val1, BigDecimal val2){
return val1.add(val2);
}
public static BigDecimal subtract (BigDecimal val1, BigDecimal val2){
return val1.subtract(val2);
}
然后,我这样称呼它
context.setFunction("meh", "max", Operate.class.getMethod("add", BigDecimal.class, BigDecimal.class));
ValueExpression e = factory.createValueExpression(context, "${meh:max(fii,fee)}", BigDecimal.class);// also return 8
我更喜欢使用第二个,希望这将是有益的