groovy.lang.MissingMethodException:使用groovy默认生成器注释时,没有方法异常的签名

groovy.lang.MissingMethodException:使用groovy默认生成器注释时,没有方法异常的签名,groovy,builder,Groovy,Builder,我有以下枚举、特征和一个类 enum FileFormat { V2, V3 } trait FileSet { int fileSetId List<DataFile> srcFiles = Collections.emptyList() boolean header = false boolean mixedPack = false FileFormat format List<String> getSrcF

我有以下枚举、特征和一个类

enum FileFormat {
    V2, V3
}

trait FileSet {
    int fileSetId
    List<DataFile> srcFiles = Collections.emptyList()
    boolean header = false
    boolean mixedPack = false
    FileFormat format

    List<String> getSrcFileNames() {
        srcFiles.collect { it -> it.getSrcFileName() }
    }

    int getFileCount() {
        srcFiles.size()
    }

    abstract boolean isValid()

    def addFile(HeaderFileType hdrType) {
        def f = DataFile()
    }
}

@Builder(builderMethodName = "builder", buildMethodName = "build", prefix = "with", excludes = "srcFileNames, valid, fileCount")
class VolumeFileSet implements FileSet {

    @Override
    boolean isValid() {
        //TODO implement based on VolumeFileSet validation rules
        return true
    }
}
这是测试

class TestSpec extends Specification {

    def setupSpec() {
        def volumeFileSet = VolumeFileSet
                .builder()
                .withHeader(true)
                .withMixedPack(true)
                .witFormat(FileFormat.V3) //ERROR here
                .build()
    }
}

您拼错了方法名称

它应该是
withFormat(FileFormat.V3)
,而不是
witFormat

更正后,代码编译并运行良好

class TestSpec extends Specification {

    def setupSpec() {
        def volumeFileSet = VolumeFileSet
                .builder()
                .withHeader(true)
                .withMixedPack(true)
                .witFormat(FileFormat.V3) //ERROR here
                .build()
    }
}