gpt4 book ai didi

android - 如何适应实体类的不同参数

转载 作者:行者123 更新时间:2023-11-29 18:30:52 25 4
gpt4 key购买 nike

我在 if/else-if 语句中针对 2 个不同的条件调用我的实体类,我传递给参数的值取决于条件。在 if block 中,我传递了 3 个参数,在 else-if block 中,我传递了 4 个参数。实体的对象抛出错误,因为它需要 4 个参数.我希望第一个参数是可选的,我想知道在 Kotlin 中是否有办法做到这一点。

这是我的实体类:

@Entity(tableName = "entry_table")
data class Entry(
@PrimaryKey(autoGenerate = true)
var id: Int? = null,

val username: String? = null,
val hint: String? = null,
val password: String? = null)

这是 if/else-if block ,我将值插入到实体对象中:

if (requestCode == ADD_ENTRY_REQUEST && resultCode == Activity.RESULT_OK) {
...

val entry = Entry(username, hint, password)
...

} else if (requestCode == EDIT_ENTRY_REQUEST && resultCode == Activity.RESULT_OK) {
...

val entry = Entry(id, username, hint, password)
...

}

在 Java 中,您可以通过创建 2 个参数数量匹配的构造函数来解决这个问题,但我想知道我们是否可以在 Kotlin 中做同样的事情,或者是否有不同的方法。

最佳答案

您可以尝试将 id 移到末尾,如下所示:

@Entity(tableName = "entry_table")
data class Entry(
val username: String? = null,
val hint: String? = null,
val password: String? = null,
@PrimaryKey(autoGenerate = true)
var id: Int? = null)

然后像这样创建它:

val entry = Entry(username, hint, password, id)

或者,如果您想将 id 作为第一个参数,您可以使用这样的命名参数:

val entry = Entry(username = username, hint = hint, password = password)

希望对您有所帮助!

关于android - 如何适应实体类的不同参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56351462/

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