1

假设我们有一个这样的字符串:

String string2code = "variable = 'hello';";

我们如何将该字符串转换为这样的一段代码?:

variable = "hello";
4

3 回答 3

1

GroovyShell是答案:

String string2code = "variable = 'hello'; return variable.toUpperCase()";

def result = new GroovyShell().evaluate string2code
assert result == "HELLO"
于 2013-07-04T23:21:43.357 回答
1

如果您以后遇到更复杂的东西,您可以使用GroovyClassLoader.

private static Class loadGroovyClass( File file ) throws MigrationException {
    try {
        GroovyClassLoader gcl = new GroovyClassLoader( ExternalMigratorsLoader.class.getClassLoader() );

        GroovyCodeSource src = new GroovyCodeSource( file );
        Class clazz = gcl.parseClass( src );
        return clazz;
    }
    catch( CompilationFailedException | IOException ex ){
        ...
    }
}
于 2013-07-05T08:14:05.380 回答
0

也许你可以看看Janino

Janino 是一个小型的 java 编译器,它不仅可以编译源文件,还可以编译你所拥有的表达式。

于 2013-07-04T23:04:30.690 回答