我尝试为接口中的属性实现自定义设置方法。在不引用支持字段的情况下如何做到这一点?
interface EmailUser {
val email: String
var jina: String
val nickname: String
get() = email.substringAfter('@')
var names: String
set(value: String) {
jina = value + "@"}
}
仅具有 setter 的属性被视为具有支持字段。如果您还为 getter 实现了默认实现,则不会有支持字段,并且代码将编译。
在这种情况下,这样的实现可能是合适的:
var names: String
get() = jina.trimEnd('@')
set(value) {
jina = value + "@"
}