【问题标题】:How to create a kotlin data class constructor with several same params?如何创建具有多个相同参数的 kotlin 数据类构造函数?
【发布时间】:2021-09-10 17:32:41
【问题描述】:

基本上我有这个:

constructor() : this(null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null)

我想要一些喜欢的

constructor() : this(null)    

甚至是这样的

constructor() : this(null...)//java like

这可以实现吗?

谢谢

【问题讨论】:

    标签: android kotlin constructor data-class


    【解决方案1】:

    据我所知,您标记为“类似 Java”的东西在 Java 中不存在。

    在 Kotlin 中执行此操作的预期方法是使用参数默认值:

    class Foo(val name: String? = null, val address: String? = null)
    

    现在您可以在不带任何参数的情况下调用构造函数,它将使用您在= 中指定的默认值作为您省略的值。

    如果您需要从 Java 或通过空构造函数实例化它的库中使用它,那么您可以使用 @JvmOverloads 以便它生成空构造函数(以及其他一些组合,see the documentation)。请注意,如果主构造函数的 所有 参数具有默认值,则这是不必要的。在这种情况下,会自动生成空构造函数。

    class Foo @JvmOverloads constructor(val name: String? = null, val address: String? = null)
    

    【讨论】:

    • 嗯,你确定它会生成所有可能的参数组合吗?我相信它“只”为前 N 个参数创建 ctor,所以:没有参数,只有第一个参数,前两个参数等等。您不会因为提供第二个参数而不是提供第一个参数而获得 ctor。 ctors 的数量是参数的数量 + 1。
    • @broot 你是对的。我记错了。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-11-06
    • 1970-01-01
    • 2010-09-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多