代码之家  ›  专栏  ›  技术社区  ›  CoXier

IDEA能否在Kotlin中生成组件方法

  •  0
  • CoXier  · 技术社区  · 7 年前

    http://kotlinlang.org/docs/reference/multi-declarations.html#multi-declarations 表示:

    component1()和component2()函数是Kotlin中广泛使用的约定原则的另一个示例(请参见+和*,以获取循环等操作符)。只要可以调用所需数量的组件函数,任何东西都可以位于解构声明的右侧。当然,也可以有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 回复  |  直到 7 年前
        1
  •  3
  •   s1m0nw1    7 年前

    你们可以让创意帮助你们。以下面的示例为例,一个没有 componentX 功能:

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

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

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

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

    enter image description here

        2
  •  0
  •   Сергей Николаев    7 年前

    尝试使用 数据 课程。

    在这种情况下,您的类应该如下所示:

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

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