我正在尝试在 Java 中使用 GroovyClassLoader 来执行 Groovy Class 中的方法。
我创建了一个 Java 类,公共方法,它创建了 GroovyClassLoader 的一个实例, parseClass 然后创建了一个新的类实例,调用类中的一个方法。
public class Gtest{
public static void main(String args[])throws IOException , InstantiationException ,IllegalAccessException {
GroovyClassLoader gcl = new GroovyClassLoader();
Class cls = gcl.parseClass("class Foo { void doIt() { println \"ok\" } }");
Object obj = cls.newInstance();
if(obj == null){
System.out.println("null");
}
obj.doIt();
}
}
错误:Gtest.java:22:错误:找不到符号 obj.doIt();^ 符号:方法 doIt() 位置:对象 1 类型的变量 obj 错误
这是因为对象类没有 doIt() 方法。您必须使用以下语法来调用您的方法。
Method sumInstanceMethod
= Operations.class.getMethod("doIt");
Object result
= sumInstanceMethod.invoke(obj, null);
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句