在 Kotlin 接口中添加属性的自定义设置方法而不引用支持字段?

问题描述 投票:0回答:1

我尝试为接口中的属性实现自定义设置方法。在不引用支持字段的情况下如何做到这一点?

interface EmailUser {
  val email: String
  var jina: String
  val nickname: String
    get() = email.substringAfter('@')
  var names: String
    set(value: String) {
        jina = value + "@"}
    }
kotlin interface setter
1个回答
0
投票

仅具有 setter 的属性被视为具有支持字段。如果您还为 getter 实现了默认实现,则不会有支持字段,并且代码将编译。

在这种情况下,这样的实现可能是合适的:

var names: String
    get() = jina.trimEnd('@')
    set(value) {
        jina = value + "@"
    }
© www.soinside.com 2019 - 2024. All rights reserved.