Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/xpath/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
HashSet上Groovy缺少PropertyException?_Groovy_Runtimeexception - Fatal编程技术网

HashSet上Groovy缺少PropertyException?

HashSet上Groovy缺少PropertyException?,groovy,runtimeexception,Groovy,Runtimeexception,我的应用程序具有以下目录结构: myapp/ src/ com.me.myapp/ Driver.groovy Fizz.groovy stages (package) AbstractStage.groovy impl (package) DefaultStage.groovy 其中: clas

我的应用程序具有以下目录结构:

myapp/
    src/
        com.me.myapp/
            Driver.groovy
            Fizz.groovy
            stages (package)
                AbstractStage.groovy
                impl (package)
                    DefaultStage.groovy
其中:

class Driver {
    static void main(String[] args) {
        AbstractStage stage1 = new DefaultStage()
        stage1.derp
    }
}

abstract class AbstractStage {
    Set<Fizz> fizzes = new HashSet<Fizz>()

    void derp() {
        println "I have " + fizzes.size + " attached fizzes!"
    }

    abstract void doSomething()
}

class DefaultStage extends AbstractStage {
    Set<Fizz> executedFizzes = new HashSet<Fizz>()

    @Override
    void doSomething() {
        // TODO: Implement
    }
}
…其中
Driver.groovy:6
对应于调用
derp
的行


这里发生了什么?

derp
是一个方法,而不是属性,因此您需要调用它:

static void main(String[] args) {
    AbstractStage stage1 = new DefaultStage()
    stage1.derp() // You need the '()' here.
}

谢谢@Igor Shults(+1)-但非常奇怪。为什么Groovy允许我执行
println“Blah!”
(而不是
println(“Blah”)
),但我不能删除
derp
调用的参数?@IAmYourFaja我想这是因为它需要一个参数。因此,您可能无法单独执行
println
,但是
println'Blah'
很好,因为Groovy意识到它是一个方法,而不是一个属性/变量。
static void main(String[] args) {
    AbstractStage stage1 = new DefaultStage()
    stage1.derp() // You need the '()' here.
}