«традиционная» реализация:
interface IFoo{
fun getS():String
fun modifyS():Unit
}
class Foo : IFoo{
private var s = "bar"
override fun getS() = s.toUpperCase()
override fun modifyS(){ s = when(s){
"bar" -> "baz"
else -> "bar"
}}
}
Что бы я хотел, теперь было бы примерно так:
interface IFoo{
var s:String
protected set
fun modifyS():Unit
}
class Foo : IFoo{
override var s = "bar"
protected set
get() = field.toUpperCase()
override fun modifyS(){ s = when(s){
"bar" -> "baz"
else -> "bar"
}}
}
У меня есть догадка, ответ будетнет, но ...
Есть ли способ сделать это?