Когда я пытаюсь оценить простое выражение MVEL, возникает ошибка: не удалось получить доступ: имя

#java #mvel

#java #mvel

Вопрос:

 import org.mvel2.MVEL;

public class MVELEvalTst {

    public static void main(String[] args) {
        String name = "xxx";
        Object eval = MVEL.eval("myName=='xxx'",name);
        System.out.println(eval);
    }

}
 

Это мое простое выражение оценки. Когда я запускаю это, получаю приведенное ниже исключение. Кто-нибудь когда-нибудь сталкивался с этим? Пожалуйста, помогите.

 Exception : Exception in thread "main" [Error: could not access: myName; in class: java.lang.String]
[Near : {... myName=='xxx' ....}]
         ^
[Line: 1, Column: 1]
    at org.mvel2.PropertyAccessor.getBeanProperty(PropertyAccessor.java:680)
 

Ответ №1:

Вам нужно передать свойство myName MVEL , чтобы оно могло оценивать.

код должен быть таким, как показано ниже

 import org.mvel2.MVEL;

    public class MVELEvalTst {

        public static void main(String[] args) {
            String name = "xxx";

            Map map = new HashMap();
            map.put("myName",name);
            Object eval = MVEL.eval("myName=='xxx'",map);
            System.out.println(eval);
        }

    }
 

Теперь запустите и проверьте вывод. Результат верен.
Также обратитесь к сайту http://mvel.codehaus.org /

Комментарии:

1. @BaBaSomanath больше для вас, если вам интересно.. ankursinghal86.blogspot.in/2014/06 /…