首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Mvel如何设置值

Mvel如何设置值
EN

Stack Overflow用户
提问于 2013-07-04 07:15:53
回答 1查看 1.4K关注 0票数 0

如果MVel表达式为真,则需要设置属性的值。有谁能帮帮我,怎么做。

示例代码如下:

代码语言:javascript
复制
      LineItem lineItem = new LineItem();

      Address address = new Address();
        address.setAddress1("ABC");
        address.setAddress2("PA");

      lineItem.setShipFromAddress(address);

    ParserContext parserContext = ParserContext.create();
    parserContext.stronglyTyped().withInput("lineItem",LineItem.class)
          .withInput("shipFromAddress", Address.class);

        Object compiledWithSet = MVEL.compileExpression("( shipFromAddress.address1 contains 'ABC' || shipFromAddress.address1 contains 'ABC DEF' ) && (shipFromAddress.address2 contains 'PA') ? setShipFromLocation('PA1') : ",parserContext);
        MVEL.executeExpression(compiledWithSet, lineItem);
EN

回答 1

Stack Overflow用户

发布于 2014-06-26 11:42:00

你的问题有一个解决方案,但你能详细描述一下你的用例吗?这是一个小的示例答案,希望这能帮助你开始。

代码语言:javascript
复制
public class MyMaths {

    int a;

    public int getA() {
        return a;
    }

    public void setA(int a) {
        this.a = a;
    }
}

public static void main(String[] args) {

        Map map = new HashMap();
        MyMaths mayMaths = new MyMaths();
        map.put("obj", mayMaths);
        map.put("name", "Ankur");

        String expression1 = "obj.a = ( name == 'Ankur') ? 20 : 25";

        Serializable compiled1 = MVEL.compileExpression(expression1);

        MVEL.executeExpression(compiled1, map);

        System.out.println(mayMaths.getA());

    }

因此,这里我实际上是将值赋给类MyMaths的变量"a

输出- 20

现在将值从'Ankur‘更改为'XYZ',输出将为25。

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

https://stackoverflow.com/questions/17459610

复制
相关文章

相似问题

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