MVEL 표현식 내에서 변수를 사용하는 방법은 무엇입니까?

키샨 카탄 하르

MVEL 표현식 내에서 사용하려는 Java 코드에 미리 정의 된 변수가 있습니다. 컨텍스트를 전달하고 싶지 않습니다.

String Col1 = "C";
String Col2 = "D";
String expression = "Col1 == 'C' && Col2 == 'D'";

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

변수 값을 읽고 표현식을 참 또는 거짓으로 평가하려면 어떻게해야합니까?

Arvind Kumar Avinash

변수 col1col2컨텍스트 개체 를 추가 한 다음이 개체를에 전달해야합니다 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());

그 이유는 다음 생성자의 가시성이 public.

MVELInterpretedRuntime(String expression, VariableResolverFactory resolverFactory) {
    setExpression(expression);
    this.variableFactory = resolverFactory;
}

따라서 클라이언트 프로그램에서 컨텍스트 개체를 채우고이 개체를 식과 함께 MVEL 식을 평가하는 프로그램 / 메소드에 전달해야합니다. 내 프로그램 main에서 컨텍스트 객체를 채우고 MVEL 표현식을 평가하는 방법입니다.

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

Float 값을 포함하는 MVEL에서 표현식을 해결하는 방법은 무엇입니까?

분류에서Dev

AngularDart를 사용하여 표현식에서 경로 매개 변수를 얻는 방법은 무엇입니까?

분류에서Dev

Octave의 정규 표현식에서 변수를 사용하는 방법은 무엇입니까?

분류에서Dev

PostgreSQL : 함수의 CASE 표현식 내에서 SELECT 문을 사용하는 방법은 무엇입니까?

분류에서Dev

변수 매개 변수를 XPath 표현식에 전달하는 방법은 무엇입니까?

분류에서Dev

Angularjs에서 ng-repeat에 표현식 변수를 추가하는 방법은 무엇입니까?

분류에서Dev

Pandas에서 정규 표현식을 사용하여 날짜를 추출하는 방법은 무엇입니까?

분류에서Dev

awk – if / else 로직 내에서 사용하려는 경우 정규 표현식을 변수에 넣는 방법은 무엇입니까?

분류에서Dev

dplyr에서 mutate를 위해 표현식 목록을 사용하는 방법은 무엇입니까?

분류에서Dev

sed의 정규 표현식에서 [\ w] +를 사용하는 방법은 무엇입니까?

분류에서Dev

Mongodb의 쿼리 평가 기준 표현식에서 필드를 사용하는 방법은 무엇입니까?

분류에서Dev

날짜 표현식 가져 오기에 변수를 삽입하는 방법은 무엇입니까?

분류에서Dev

Javascript의 정규식 내에서 변수를 사용하는 방법은 무엇입니까?

분류에서Dev

Lambda 표현식을 사용하여 LINQ에 SQL 쿼리를 작성하는 방법은 무엇입니까?

분류에서Dev

Lambda 표현식을 사용하여 LINQ에 SQL 쿼리를 작성하는 방법은 무엇입니까?

분류에서Dev

DSC의 변수에 PowerShell 표현식 결과를 등록하는 방법은 무엇입니까?

분류에서Dev

Linux Shell-이진 표현식에 변수를 할당하는 방법은 무엇입니까?

분류에서Dev

사용자 정의 함수에 if-then 표현식을 추가하는 방법은 무엇입니까?

분류에서Dev

정규 표현식에서 *를 찾는 방법은 무엇입니까?

분류에서Dev

Lambda 표현식을 사용하여 ResultSet의 데이터를 HashMap에 넣는 방법은 무엇입니까?

분류에서Dev

정규 표현식을 사용하는 Java에서 길이를 알 수없는 문자열에서 숫자를 캡처하는 방법은 무엇입니까?

분류에서Dev

방정식의 변수를 다른 방정식으로 대체하고 R에서 해당 표현식을 평가하는 방법은 무엇입니까?

분류에서Dev

require () 내에서 변수를 사용하는 방법은 무엇입니까?

분류에서Dev

R에서 변수로 표현식을 평가하는 방법은 무엇입니까?

분류에서Dev

접두사 표기법에서 이진 표현식 트리를 만드는 방법은 무엇입니까?

분류에서Dev

MySQL 8 (MSSQL과 같은)에서 표현식을 LAG () 두 번째 매개 변수로 사용하는 방법은 무엇입니까?

분류에서Dev

가변 템플릿 함수에서 각 유형을 인스턴스화하기 위해 접기 표현식을 사용하는 방법은 무엇입니까?

분류에서Dev

Javascript에서 함수 표현식으로 변수 호이 스팅을 사용하는 방법은 무엇입니까?

분류에서Dev

쿼리 표현식에서이 구문 오류를 수정하는 방법은 무엇입니까?

Related 관련 기사

  1. 1

    Float 값을 포함하는 MVEL에서 표현식을 해결하는 방법은 무엇입니까?

  2. 2

    AngularDart를 사용하여 표현식에서 경로 매개 변수를 얻는 방법은 무엇입니까?

  3. 3

    Octave의 정규 표현식에서 변수를 사용하는 방법은 무엇입니까?

  4. 4

    PostgreSQL : 함수의 CASE 표현식 내에서 SELECT 문을 사용하는 방법은 무엇입니까?

  5. 5

    변수 매개 변수를 XPath 표현식에 전달하는 방법은 무엇입니까?

  6. 6

    Angularjs에서 ng-repeat에 표현식 변수를 추가하는 방법은 무엇입니까?

  7. 7

    Pandas에서 정규 표현식을 사용하여 날짜를 추출하는 방법은 무엇입니까?

  8. 8

    awk – if / else 로직 내에서 사용하려는 경우 정규 표현식을 변수에 넣는 방법은 무엇입니까?

  9. 9

    dplyr에서 mutate를 위해 표현식 목록을 사용하는 방법은 무엇입니까?

  10. 10

    sed의 정규 표현식에서 [\ w] +를 사용하는 방법은 무엇입니까?

  11. 11

    Mongodb의 쿼리 평가 기준 표현식에서 필드를 사용하는 방법은 무엇입니까?

  12. 12

    날짜 표현식 가져 오기에 변수를 삽입하는 방법은 무엇입니까?

  13. 13

    Javascript의 정규식 내에서 변수를 사용하는 방법은 무엇입니까?

  14. 14

    Lambda 표현식을 사용하여 LINQ에 SQL 쿼리를 작성하는 방법은 무엇입니까?

  15. 15

    Lambda 표현식을 사용하여 LINQ에 SQL 쿼리를 작성하는 방법은 무엇입니까?

  16. 16

    DSC의 변수에 PowerShell 표현식 결과를 등록하는 방법은 무엇입니까?

  17. 17

    Linux Shell-이진 표현식에 변수를 할당하는 방법은 무엇입니까?

  18. 18

    사용자 정의 함수에 if-then 표현식을 추가하는 방법은 무엇입니까?

  19. 19

    정규 표현식에서 *를 찾는 방법은 무엇입니까?

  20. 20

    Lambda 표현식을 사용하여 ResultSet의 데이터를 HashMap에 넣는 방법은 무엇입니까?

  21. 21

    정규 표현식을 사용하는 Java에서 길이를 알 수없는 문자열에서 숫자를 캡처하는 방법은 무엇입니까?

  22. 22

    방정식의 변수를 다른 방정식으로 대체하고 R에서 해당 표현식을 평가하는 방법은 무엇입니까?

  23. 23

    require () 내에서 변수를 사용하는 방법은 무엇입니까?

  24. 24

    R에서 변수로 표현식을 평가하는 방법은 무엇입니까?

  25. 25

    접두사 표기법에서 이진 표현식 트리를 만드는 방법은 무엇입니까?

  26. 26

    MySQL 8 (MSSQL과 같은)에서 표현식을 LAG () 두 번째 매개 변수로 사용하는 방법은 무엇입니까?

  27. 27

    가변 템플릿 함수에서 각 유형을 인스턴스화하기 위해 접기 표현식을 사용하는 방법은 무엇입니까?

  28. 28

    Javascript에서 함수 표현식으로 변수 호이 스팅을 사용하는 방법은 무엇입니까?

  29. 29

    쿼리 표현식에서이 구문 오류를 수정하는 방법은 무엇입니까?

뜨겁다태그

보관