用具有不同名称的构造函数参数覆盖接口属性
我有这个代码:
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 }
你不能改变你真正压倒一切的东西的名字。 但是你可以在构造的时候传递值给一个成员,就像我稍微修改过的代码所显示的那样。