Не удается импортировать статический метод с использованием MVEL - PullRequest
1 голос
/ 03 декабря 2010

Согласно документации MVEL, в скрипт можно импортировать статические методы java: http://mvel.codehaus.org/Programmatic+Imports+for+2.0.Следующий пример взят с этой страницы, но не работает (я получаю сообщение об ошибке: невозможно получить доступ к свойству (нулевой родитель): время).Что может быть не так?

import java.io.Serializable;
import org.mvel2.MVEL;
import org.mvel2.ParserContext;

public class Test {

    public static void main(String[] args) {

        ParserContext ctx = new ParserContext();
        try {
            ctx.addImport("time", System.class.getMethod("currentTimeMillis", long.class));
        }
        catch (NoSuchMethodException e) {
            // handle exception here.
        }

        Serializable s = MVEL.compileExpression("time();", ctx);
        Object ans = MVEL.executeExpression(s);
        System.out.println(ans.toString());

    }

}

1 Ответ

3 голосов
/ 04 декабря 2010

Второй аргумент getMethod используется для типов параметров, он не используется для типа возвращаемого значения метода.

изменить эту строку:

System.class.getMethod("currentTimeMillis", long.class)

с помощью этого:

System.class.getMethod("currentTimeMillis")
...