gpt4 book ai didi

kotlin - 使用具有不同名称的构造函数参数覆盖接口(interface)属性

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

我有这个代码:

class AnyUsernamePersistentNodePath(override val value: String) : AnyPersistenceNodePath {
override val key = "username"
}

interface AnyPersistenceNodePath {
val key: String
val value: String
}

到目前为止,一切都很好。现在我希望构造函数中的参数 value 被命名为 username,而不是 value。但是,显然,继续覆盖接口(interface)的属性 value。这在 Kotlin 中可行吗?

我知道我能做到:

class AnyUsernamePersistentNodePath(val username: String) : AnyPersistenceNodePath {
override val key = "username"
override val value = username
}

但我想避免它。

最佳答案

您可以简单地通过从构造函数参数中删除 val 来做您想做的事情,这样它就是一个参数而不是一个成员。你的最后一个类是:

class AnyUsernamePersistentNodePath(username: String) : AnyPersistenceNodePath {
override val key = "username"
override val value = username
}

您不能以其他方式更改您真正覆盖的东西的名称。但是您可以在构建过程中传递要分配给成员的值,正如我对您的代码稍作修改的版本所示。

关于kotlin - 使用具有不同名称的构造函数参数覆盖接口(interface)属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39983290/

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