Groovy生成的类名

4
我正在使用Java + Groovy脚本。 是否可以更改由Groovy生成的类名称(例如Script1.groovy,Script777.groovy等)? 如果发生异常,很难找到正确的脚本:/
Caused by: org.json.JSONException: JSONObject["value14"] not found.
at org.json.JSONObject.get(JSONObject.java:498)
at sun.reflect.GeneratedMethodAccessor9.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:601)
at org.codehaus.groovy.reflection.CachedMethod.invoke(CachedMethod.java:90)
at groovy.lang.MetaMethod.doMethodInvoke(MetaMethod.java:233)
at org.codehaus.groovy.runtime.metaclass.MethodMetaProperty$GetMethodMetaProperty.getProperty(MethodMetaProperty.java:59)
at org.codehaus.groovy.runtime.callsite.GetEffectivePojoPropertySite.getProperty(GetEffectivePojoPropertySite.java:61)
at org.codehaus.groovy.runtime.callsite.AbstractCallSite.callGetProperty(AbstractCallSite.java:227)
at Script4.run(Script4.groovy:23)
at org.codehaus.groovy.jsr223.GroovyScriptEngineImpl.eval(GroovyScriptEngineImpl.java:346)
... 13 more
1个回答

5

是的,可以为Groovy脚本设置自定义名称。你需要使用groovy.lang.GroovyClassLoader。例如:

GroovyClassLoader groovyClassLoader = new GroovyClassLoader();
Class<Script> parsedClass = groovyClassLoader.parseClass(scriptText, name);
Script script = scriptClass.newInstance();
script.run()

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接