gpt4 book ai didi

constructor - Kotlin 数据类可以有多个构造函数吗?

转载 作者:IT老高 更新时间:2023-10-28 13:28:03 27 4
gpt4 key购买 nike

我知道数据类就像 kotlin 中默认带有 getter 和 setter 的简单模型,并且很简单:

data class User(val name: String, val age: Int)

是否可以为该数据类声明第二个构造函数?

最佳答案

Kotlin 数据类必须具有定义至少一个成员的主构造函数。除此之外,您可以添加辅助构造函数,如 Classes and Inheritance - Secondary Constructors 中所述。 .

对于您的类,以及示例辅助构造函数:

data class User(val name: String, val age: Int) {
constructor(name: String): this(name, -1) { ... }
}

请注意,辅助构造函数必须在其定义中委托(delegate)给主构造函数。

尽管辅助构造函数的许多常见问题都可以通过为参数设置默认值来解决。在上述情况下,您可以简化为:

data class User(val name: String, val age: Int = -1) 

如果从 Java 调用这些,您应该阅读 Java interop - Java calling Kotlin关于如何生成重载的文档,有时可能是 NoArg Compiler Plugin其他特殊情况。

关于constructor - Kotlin 数据类可以有多个构造函数吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44391468/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com