正如http://kotlinlang.org/docs/reference/multi-declarations.html#multi-declarations所说:
component1()和component2()函数是Kotlin中广泛使用的约定原则的另一个例子(参见+和*,for-loops等运算符)。只要可以在其上调用所需数量的组件函数,任何东西都可以在解构声明的右侧。当然,可以有component3()和component4()等等。
例如,
class Pair<K, V>(val first: K, val second: V) {
operator fun component1(): K {
return first
}
operator fun component2(): V {
return second
}
}
但我认为手动输入这些方法非常无聊。那么有没有办法在IDEA
中生成这些方法。
答案 0 :(得分:3)
您可以让IDEA帮助您。采用以下示例,一个没有componentX
函数的简单类:
class Ex(val a: Int, val b: Int)
然后对它进行解构,不编译:
val (a,b) = Ex(1,2)
如果您使用快捷方式"Show intention action",IDEA会为您提供有关如何解决问题的一些提示:
答案 1 :(得分:0)
尝试使用数据类。
在这种情况下,您的课程应如下所示:
data class Pair<K, V>(val first: K, val second: V)