用具有不同名称的构造函数参数覆盖接口属性
我有这个代码:
class AnyUsernamePersistentNodePath(override val value: String) : AnyPersistenceNodePath { override val key = "username" }
和
interface AnyPersistenceNodePath { val key: String val value: String }
到现在为止还挺好。 现在我想在构造函数中的参数value
被命名为username
,而不是value
。 但是,显然,保持覆盖接口的属性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中使用类似静态函数的语法,哪种方法更好?
- ReferenceError:ok没有在Kotlin Javascript的QUnitAsserter.assertTrue中定义
- 使用伴随对象在Kotlin中返回类的一个实例
- Kotlin编译错误:使用提供的参数不能调用以下函数
- Swift – 从闭包中退出外层函数
- 理想的Android Studio Kotlin gitignore
- 如何使用Netty4ClientHttpRequestFactory为Spring AsyncRestTemplate设置代理?
- 是否可以将引用传递给基本数组的第i个元素?
- 从Kotlin任何显式inheritance – 可以和它是如何做到的?