第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機(jī)立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如何在 MVEL 表達(dá)式中使用變量?

如何在 MVEL 表達(dá)式中使用變量?

白板的微信 2024-01-05 10:53:46
我的 Java 代碼中有預(yù)定義的變量,我想在 MVEL 表達(dá)式中使用它們。我不想傳遞上下文。String Col1 = "C";String Col2 = "D";String expression = "Col1 == 'C' && Col2 == 'D'";Boolean result = (Boolean) MVEL.eval(expression);如何讀取變量值并將表達(dá)式計算為 true 或 false?
查看完整描述

1 回答

?
喵喵時光機(jī)

TA貢獻(xiàn)1846條經(jīng)驗 獲得超7個贊

您需要將變量添加col1到col2上下文對象中,然后將該對象傳遞給MVEL.eval. 下面給出的是工作示例:


import java.util.HashMap;

import java.util.Map;


import org.mvel2.MVEL;


public class Test {

    public static void main(String[] args) {

        Map<String, Object> context = new HashMap<String, Object>();


        String col1 = "C";

        String col2 = "D";


        context.put("col1", col1);

        context.put("col2", col2);


        String expression = "col1 == 'C' && col2 == 'D'";

        Boolean result = (Boolean) MVEL.eval(expression,context);

        System.out.println(result);//true


        expression = "col1 == 'E' && col2 == 'D'";

        result = (Boolean) MVEL.eval(expression,context);

        System.out.println(result);//false

    }

}

如果您還有任何疑問,請隨時告訴我。


更新:以下更新是解釋為什么您需要上下文對象(您在評論中提到您不想將變量添加到上下文對象)。


如果您查看https://github.com/mvel/mvel/blob/master/src/main/java/org/mvel2/MVEL.java上的文檔,您會很想使用以下方法:


public static Object eval(String expression) {

    return new MVELInterpretedRuntime(expression, new ImmutableDefaultFactory()).parse();

}

但是,下面的代碼將無法編譯:


String col1 = "C";

String col2 = "D";

String expression = "col1 == 'C' && col2 == 'D'";

System.out.println(new MVELInterpretedRuntime(expression, new ImmutableDefaultFactory()).parse());

原因是,以下構(gòu)造函數(shù)的可見性不是public。


MVELInterpretedRuntime(String expression, VariableResolverFactory resolverFactory) {

    setExpression(expression);

    this.variableFactory = resolverFactory;

}

因此,您需要在客戶端程序中填充一個上下文對象,并將該對象與表達(dá)式一起傳遞給評估 MVEL 表達(dá)式的程序/方法。在我的程序中,這是main我填充上下文對象以及評估 MVEL 表達(dá)式的方法。


查看完整回答
反對 回復(fù) 2024-01-05
  • 1 回答
  • 0 關(guān)注
  • 254 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號