我有两节课。一个.groovy:
class One {
One() {}
def someMethod(String hey) {
println(hey)
}
}
和Two.groovy:
class Two {
def one
Two() {
Class groovy = ((GroovyClassLoader) this.class.classLoader).parseClass("One.groovy")
one = groovy.newInstance()
one.someMethod("Yo!")
}
}
我用类似这样的东西实例化两个:
GroovyClassLoader gcl = new GroovyClassLoader();
Class cl = gcl.parseClass(new File("Two.groovy"));
Object instance = cl.newInstance();
但是现在我得到了groovy.lang.MissingMethodException: No signature of method: script13561062248721121730020.someMethod() is applicable for argument types: (java.lang.String) values: [Yo!]
有什么想法吗?
似乎是由于调用了groovy类加载器方法而发生的:string one将以文本格式解析脚本。使用File
可以在这里工作: