kotlin - 如何让数据类(Kotlin)从超类扩展并继承超类字段之一?
问题描述
我尝试为我的一些数据类创建自定义 toString() 方法。但我只想定义一次 fun toString 的覆盖。
这将是我的超级班:
abstract class Id(val value: String) {
override fun toString(): String {
return value
}
}
现在我想通过扩展超类 ID 在我的一些数据类中使用自定义的 toString() 方法:
data class MyId(val v: String): Id(v)
但是,这会在 MyId 中为“v”引入一个辅助字段和吸气剂,这不是我想要的。使用“value”而不是“v”给了我一个问题:“value”隐藏了超类型“Id”的成员。我想重用 Id 中定义的“值”字段和 getter。我不想介绍一个新的。
我该如何纠正?
解决方案
我不太确定你想做什么,但你可以这样做
abstract class Id(open val value: String) {
override fun toString(): String {
return value
}
}
data class MyId(override val value: String): Id(value)
推荐阅读
- dapper - 对于 varbinary 数据类型,DynamicParameters (Dapper) 的正确用法是什么?
- python - 如果在 Pandas 中的字符串末尾删除某些字符
- python - “系列”对象没有属性“values_counts”
- php - Zend HTML 链接到 $baseUrl 上面的文件
- python - 如何让 VS 代码与 Pybuilder python 项目一起使用?
- javascript - $.ajax 自动完成在 jquery 的 ie 11 中不起作用?
- regex - 替换标签名称,同时保持其余部分不变
- javascript - IBM Mobile First 7.1 - 如何在 IBM MFP 7.1 中添加适用于 Android 和 iOS 的 Maps SDK
- facebook - facebook客户聊天信使定位
- regex - 正则表达式测试数学表达式