斑点鱼与Kotlin兼容吗?

时间:2018-05-21 15:15:18

标签: kotlin spotbugs

当在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来自何处!

1 个答案:

答案 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(...)