Groovy - Class中的MissingPropertyException

时间:2016-01-17 23:17:50

标签: groovy

我是Groovy的新手,并且在运行此程序时遇到了一些麻烦。我试图做的就是将一个列表的所有元素添加到另一个列表中,但我甚至无法访问方法中我想要的变量。

我环顾四周寻找答案,但似乎对于一个人的问题来说太过具体,或者对我对Groovy的有限理解太过技术性。任何帮助表示赞赏。

如果有所不同,请在IntelliJ IDEA中使用Groovy 2.4.5。这是我试图运行的代码:

class ListPractice implements Testable {

    def mylist = [4,5,6]

    /**
     * Adds a set of elements to the mylist variable
     *
     * @paraelts The elements to be added
     */
    def addToList(List elts) {
        myList.each{
            println "I: $it"
        }
    }

    @Override
    void testMe() {
        addToList([7,8,9])
    }
}

但它会引发以下错误:

Caught: groovy.lang.MissingPropertyException: No such property: myList
for class: ListPractice
Possible solutions: mylist
    groovy.lang.MissingPropertyException: No such property: myList for class: ListPractice
Possible solutions: mylist
    at ListPractice.addToList(ListPractice.groovy:14)
    at ListPractice$addToList.callCurrent(Unknown Source)
    at ListPractice.testMe(ListPractice.groovy:36)
    at Testable$testMe.call(Unknown Source)
    at RunMe$_main_closure1.doCall(RunMe.groovy:12)
    at RunMe.main(RunMe.groovy:11)

由于这是我第一次使用该语言而代码的结构是由我的老师完成的,我甚至不确定@Override是否必要或它的作用。

1 个答案:

答案 0 :(得分:7)

资本化很重要

您将列表声明为mylist

然后您尝试在myList

上调用每个

它会在错误消息中显示