首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何编写juel表达式

如何编写juel表达式
EN

Stack Overflow用户
提问于 2019-01-28 02:12:39
回答 1查看 2.1K关注 0票数 3

最近我试用了JUEL,现在我很困惑如何编写一些在文档中找不到的方法。

只给我这个http://juel.sourceforge.net/guide/start.html

如果我有context.setFunction("meh", "max", BigDecimal.class.getMethod("compareTo", BigDecimal.class));的话,我想知道怎么把它写出来

既然我们知道bigDecimal表达式是像foo.compareTo(bigDecimal);那样写的,那么如何在表达式中写这个呢?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-01-29 03:27:17

用两个可能的答案轻松地完成

  1. 因为SimpleContext允许你做算术计算(在我的例子中),所以我把计算放在这里。我还使用ValueExpression (我猜不是在正确的位置)为我提供来自SimpleContext的映射值。因此,我在这里 context.setVariable("fii",factory.createValueExpression(新BigDecimal(3),BigDecimal.class);context.setVariable("fee",factory.createValueExpression(新BigDecimal(5),BigDecimal.class));ValueExpression e1 =factory.createValueExpression(上下文,"${fee}",BigDecimal.class);ValueExpression e2 =factory.createValueExpression(上下文,"${fii}",BigDecimal.class);String temp1 =( String )e1.getValue(上下文)BigDecimal.class();String factory.createValueExpression=(String)e2.getValue(上下文)();context.setVariable("foo",factory.createValueExpression(新BigDecimal(Temp1).add(新BigDecimal(temp2)),BigDecimal.class);ValueExpression e=factory.createValueExpression(上下文,"${foo}",BigDecimal.class);//将返回8

但我又一次不知道这是不是对的,所以我想出了第二个

  1. 创建一个类,创建一些需要2个参数的静态方法,然后就这样了。假设这个类名为Operate 公共静态BigDecimal添加(BigDecimal val1,BigDecimal val2){返回val1.add(val2);}公共静态BigDecimal减法(BigDecimal val1,BigDecimal val2){返回值1减去(Val2);} 然后,我称之为thiscontext.setFunction("meh","max",Operate.class.getMethod("add",BigDecimal.class,BigDecimal.class));ValueExpression e=factory.createValueExpression(上下文,"${meh:max(fii,fee)}",BigDecimal.class);//还返回8。

我更喜欢用第二个,希望这会有帮助。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/54394715

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档