假设我们有一个像这样的字符串:
String string2code = "variable = 'hello';";
我们如何将该String转换为这样的代码?:
variable = "hello";
答案 0 :(得分:1)
GroovyShell
就是答案:
String string2code = "variable = 'hello'; return variable.toUpperCase()";
def result = new GroovyShell().evaluate string2code
assert result == "HELLO"
答案 1 :(得分: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 ){
...
}
}
答案 2 :(得分:0)
也许你可以看看Janino
Janino是一个小型java编译器,它不仅可以编译源文件,还可以编译你所拥有的表达式。