kotlin - 如何避免Kotlin中的重复覆盖字段

标签 kotlin duplicates overriding

继承的对象创建新字段,而不是Override

我们说CredentialMessageMessage的扩展

open class Message(
        @SerializedName("l") open val label: String
){
        override fun toString(): String {
                return label
        }
}

class CredentialMessage(
    @Transient override val label: String,
    @SerializedName("u") open val userName: String,
    @SerializedName("p") open val password: String
): Message("\uD83D\uDD12" + label) //🔒
CredentialMessage的简单示例如下所示
val message = CredentialMessage("Barev","user","pass")

当我打印消息标签而不是“🔒Barev”时,我得到了“Barev”
println(message.label) // "Barev"

调试显示有两个标签。
第一个是label,第二个是Message.label
enter image description here

而且没有任何方式可以访问Message.label

最佳答案

反编译现有源代码后,我找到了答案。override关键字生成完全相同的字段。删除override关键字后,问题解决了。

class CredentialMessage(
    label: String,
    @SerializedName("u") open val userName: String,
    @SerializedName("p") open val password: String
): Message("\uD83D\uDD12" + label) //🔒

关于kotlin - 如何避免Kotlin中的重复覆盖字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59974931/

相关文章:

gradle - Unresolved reference : launch

java - 使用此代码从数组列表中删除重复项但忽略大小写

Javascript 404检查 anchor 标记点击

c# - 函数式编程对覆盖的回答是什么?

function - 如何在不调用函数的情况下判断类型的基函数是否已在 Go 中被覆盖?

kotlin - 将 "Callable<T>"Java 方法转换为 Kotlin

json - 如何从 Kotlin 中的响应中获取列表

Android,生成数字 Assets 链接 : keystore file for signing the app

c - 如何改进我的算法来检测对应于相同分数的数组元素?

c# - 获取 ListBox 中的所有选中项(包括重复项)