如何将java对象传递给java中调用的groovy方法?

如何将java对象传递给java中调用的groovy方法?,java,groovy,Java,Groovy,我正在调用groovy方法,该方法从java获取一个POJO,但得到异常 详情如下: 文件:SampleScript2.groovy import com.hrishikeshmishra.sb.Obj; class SampleScript2 { String process(Obj obj) { if(obj.num ==10) return "equal"; else return "not-equ

我正在调用groovy方法,该方法从java获取一个POJO,但得到异常

详情如下:

文件:SampleScript2.groovy

import com.hrishikeshmishra.sb.Obj;

class SampleScript2 {

    String process(Obj obj) {
        if(obj.num ==10)
            return "equal";
        else
            return "not-equal"
    }
}
文件:com/hrishikeshmishra/sb/Obj.java

package com.hrishikeshmishra.sb;

class Obj {
    public int num;

    public Obj(int num) {
        this.num = num;
    }
}
文件:com/hrishikeshmishra/sb/JavaGroovyTest.java

package com.hrishikeshmishra.sb;

import groovy.lang.GroovyClassLoader;
import groovy.lang.GroovyObject;

import java.io.File;
import java.io.IOException;


public class JavaGroovyTest {

    static final GroovyClassLoader classLoader = new GroovyClassLoader();

    public static void main(String[] args) throws IllegalAccessException, IOException, InstantiationException {
        example6();
    }

    private static void example6() throws IOException, IllegalAccessException, InstantiationException {

        Class groovy = classLoader.parseClass(new File("/Users/hrishikesh.mishra/hrishi/codes/sb/groovyjava/src/main/resources/SampleScript2.groovy"));
        GroovyObject groovyObj = (GroovyObject) groovy.newInstance();
        String output = (String) groovyObj.invokeMethod("scriptSays", new Object[] { new Obj(12)});
        System.out.println(output);
    }
}
例外情况:

Exception in thread "main" org.codehaus.groovy.runtime.metaclass.MissingMethodExceptionNoStack: No signature of method: SampleScript2.scriptSays() is applicable for argument types: (com.hrishikeshmishra.sb.Obj) values: [com.hrishikeshmishra.sb.Obj@51931956]

这是因为您试图调用一个名为
scriptSays()
的方法,但您定义的方法实际上被称为
process()

错误非常明确:SampleScript2.groovy中的类没有您试图调用的方法:
scriptSays()
@HrishikeshMishra欢迎您。如果有用的话,请考虑标记为已接受的答案(点击滴答声)。