Groovy/IntelliJ:groovy.lang.MissingPropertyException:无此属性

wd2eg0qa  于 2023-06-21  发布在  其他
关注(0)|答案(1)|浏览(233)

我是一个groovy初学者,并试图使用IntelliJ为类sampleHelper构建一个示例项目和一些spock测试。运行createToken方法的测试会导致以下错误:
groovy.lang.MissingPropertyException: No such property: sampleConstants for class: com.tutorial.sampleHelper
我的理解是,同一个包中的类不需要导入。我一定是犯了一个愚蠢的错误,但我不知道我错在哪里。任何指针是赞赏。
单击类中的sampleConstants.TOKEN可转到正确的文件。
我的文件夹结构如下:

└── sample-project
    ├── pom.xml
    ├── resources
    ├── src --> set as sources root
    │   └── com
    │       └── tutorial
    │           ├── sampleConstants
    │           └── sampleHelper
    └── tests --> set as tests root
        └── com
            └── tutorial
                └── sampleHelper

sampleHelper.groovy:

package com.tutorial

public class sampleHelper implements Serializable {
    Boolean enabled

    public sampleHelper(config) {
        this.enabled = config.enabled
    }

    def createToken() {
        def token = enabled ? "abc" : sampleConstants.TOKEN
        return token
    }
}

sampleConstants.groovy

package com.tutorial

public class sampleConstants {
    static final TOKEN = "cde"
}
ifmq2ha2

ifmq2ha21#

Java(和Groovy)中的类传统上以大写字母开头。
Groovy解析器有时依赖于这种传统,如果您使用小写字母的类,它很难理解您的意思,而是寻找具有该名称的字段或变量。
类名(以及包含它们的文件)总是使用大写字母,这是一个好主意,因为这样可以避免类似这样的事情(看起来世界已经疯了)😉

相关问题