该字段需要一个 java.lang.String 但脚本返回了一个 java.lang.Class

This field expects a java.lang.String but the script returned a java.lang.Class

public class MyClass {

    public static main(String[] args) {

        def field = "Passed";

        def passTime = use(TimeCategory) {
            new Date() + 60.days
        }

        if (field.equals("Passed")) {
            String newPassTime = passTime.format('M/d/yy')
            return newPassTime
        }

    }
}

我希望输出是一个字符串,但出于某种原因,脚本正在 returning a class。

如何从这段代码中 return 一个字符串?

我的测试不支持你的输出。我试过了

    if (field.equals("Passed")) {
        String newPassTime = passTime.format('M/d/yy')
        System.out.println(newPassTime)
        System.out.println(newPassTime.getClass())
        return newPassTime
    }

并给出以下输出

C:\Users\athakur\Desktop\TempDump>groovy test.groovy
Apr 19, 2015 10:04:36 AM org.codehaus.groovy.runtime.m12n.MetaInfExtensionModule newModule
WARNING: Module [groovy-nio] - Unable to load extension class [org.codehaus.groovy.runtime.NioGroovyMethods]
6/18/15
class java.lang.String

所以它应该 return 一个字符串 a 而不是 java.lang.Class