eval.java

来自「大名鼎鼎的java动态脚本语言。已经通过了sun的认证」· Java 代码 · 共 76 行

JAVA
76
字号
package groovy.util;import org.codehaus.groovy.control.CompilationFailedException;import groovy.lang.Binding;import groovy.lang.GroovyShell;/** * Allow easy integration from Groovy into Java through convenience methods. * @see EvalTest * @author Dierk Koenig */public class Eval {    /**     * @param expression the Groovy expression to evaluate     * @return the result of the expression     * @throws CompilationFailedException if expression is no proper Groovy     */    public static Object me(final String expression) throws CompilationFailedException {        return me(null, null, expression);    }    /**     * evaluate expression and make object available inside the expression as 'symbol'     * @param expression the Groovy expression to evaluate     * @return the result of the expression     * @throws CompilationFailedException if expression is no proper Groovy     */    public static Object me(final String symbol, final Object object, final String expression) throws CompilationFailedException {        Binding b = new Binding();        b.setVariable(symbol, object);        GroovyShell sh = new GroovyShell(b);        return sh.evaluate(expression);    }    /**     * evaluate expression and make x available inside the expression as 'x'     * @param expression the Groovy expression to evaluate     * @return the result of the expression     * @throws CompilationFailedException if expression is no proper Groovy     */    public static Object x(final Object x, final String expression) throws CompilationFailedException {        return me("x", x, expression);    }    /**     * evaluate expression and make x and y available inside the expression as 'x' and 'y'     * @param expression the Groovy expression to evaluate     * @return the result of the expression     * @throws CompilationFailedException if expression is no proper Groovy     */    public static Object xy(final Object x, final Object y, final String expression) throws CompilationFailedException {        Binding b = new Binding();        b.setVariable("x", x);        b.setVariable("y", y);        GroovyShell sh = new GroovyShell(b);        return sh.evaluate(expression);    }    /**     * evaluate expression and make x,y,z available inside the expression as 'x','y','z'     * @param expression the Groovy expression to evaluate     * @return the result of the expression     * @throws CompilationFailedException if expression is no proper Groovy     */    public static Object xyz(final Object x, final Object y, final Object z, final String expression) throws CompilationFailedException {        Binding b = new Binding();        b.setVariable("x", x);        b.setVariable("y", y);        b.setVariable("z", z);        GroovyShell sh = new GroovyShell(b);        return sh.evaluate(expression);    }}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?