IDEA能否在Kotlin中生成componentN方法

时间:2018-03-23 03:12:12

标签: intellij-idea kotlin

正如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中生成这些方法。

2 个答案:

答案 0 :(得分:3)

您可以让IDEA帮助您。采用以下示例,一个没有componentX函数的简单类:

class Ex(val a: Int, val b: Int)

然后对它进行解构,不编译:

val (a,b) = Ex(1,2)

如果您使用快捷方式"Show intention action",IDEA会为您提供有关如何解决问题的一些提示:

enter image description here

答案 1 :(得分:0)

尝试使用数据类。

在这种情况下,您的课程应如下所示:

data class Pair<K, V>(val first: K, val second: V)

https://kotlinlang.org/docs/reference/data-classes.html