groovy - groovy.lang.MissingMethodException:使用 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> 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
}
}
当我尝试使用 builder 设置format
枚举时,出现错误
groovy.lang.MissingMethodException: No signature of method: static com.tccc.bia.testdrive.nsr.VolumeFileSet.witFormat() is applicable for argument types: (com.tccc.bia.testdrive.nsr.FileFormat) values: [V3]
Possible solutions: setFormat(com.tccc.bia.testdrive.nsr.FileFormat), getFormat()
这是测试
class TestSpec extends Specification {
def setupSpec() {
def volumeFileSet = VolumeFileSet
.builder()
.withHeader(true)
.withMixedPack(true)
.witFormat(FileFormat.V3) //ERROR here
.build()
}
}
解决方案
您拼错了方法名称。
应该是withFormat(FileFormat.V3)
,不是witFormat
。
更正后,代码编译并运行得很好。
推荐阅读
- python-3.x - ValueError:发现样本数量不一致的输入变量:[755, 8]
- python - 如何在 python 的 Tkinter GUI 中显示完整的文本?
- sql - SQL如何对唯一键对的列求和
- php - 如何使用 swagger 描述 URL 查询参数中的对象数组?
- sql - 如何删除子查询?
- database - 约束数据库
- multithreading - ExecutorService 提交方法返回 NULL
- javascript - TinyMCE 自动关闭标签和/或重新排列它们
- tomcat - 如何从主机访问在虚拟机上运行的 tomcat 实例
- ansible - 当在同一剧本中创建事实文件时,剧本无法读取 local_facts