用具有不同名称的构造函数参数覆盖接口属性
我有这个代码:
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 }
你不能改变你真正压倒一切的东西的名字。 但是你可以在构造的时候传递值给一个成员,就像我稍微修改过的代码所显示的那样。
- 从1.0.2 – 1.0.3升级Kotlin:java.lang.NoSuchMethodError:没有虚方法provideInjectedData $ app_compileDebugKotlin()
- 为什么我被迫使用! 在空检查的组合?
- 使用gradle-script-kotlin的ant任务
- 在使用Android Databinding和Kotlin的自定义BindingAdapter中使用lambda
- Firebase数据库查询设计
- 如何将主键作为Room Persistence lib的自动增量
- Spring Boot和Kotlin中的部分更新REST
- 如何在Kotlin中声明原始类型?
- 错误:执行任务':app:javaPreCompileDebug'失败。 > java.io.IOException:无法删除annotationProcessors.json