当在Kolin项目上运行spotbug时,我会收到错误,例如:
[错误]私有方法com.example.CSVRecord.component1()从不被调用[com.example.CSVRecord]在CSVRecord.kt中UPM_UNCALLED_PRIVATE_METHOD
对类如:
data class CSVRecord(private val columns: SortedSet<CSVColumn>) : Iterable<String> {
override fun iterator(): Iterator<String> {
return columns.map { it.value }.iterator()
}
}
我不清楚component1
来自何处!
答案 0 :(得分:1)
根据Data Classes文档:
编译器自动从所有成员派生以下成员 在主构造函数中声明的属性:
- equals()/ hashCode()对;
- toString()形式&#34;用户(姓名=约翰,年龄= 42)&#34;;
- componentN()函数对应于声明顺序中的属性;
- copy()函数(见下文)。
这是数据类的功能之一。自动生成的componentN
函数允许您在此类类上使用Destructuring Declarations:
data class Result(val result: Int, val status: Status)
fun function(...): Result {
// computations
return Result(result, status)
}
// Now, to use this function:
val (result, status) = function(...)