val messages: ReceiveChannel<Message>
}
соответвующая реализация будет выглядеть так:
class Impl : Intf {
override val messages: ReceiveChannel<Message> = Channel()
}
и мне нужно внутри класса посылать сообщения. но из-за того что тип явно задан как ReceiveChannel этого сделать нельзя без явного as Channel.
можно было бы сделать приватный private val _messages = Channel() но это как-то не ок.
есть ли способ красивый? а именно опредлить как-нибудь проперти не override, а только его геттер. т.е. позволить использовать backing property внутри класса.
private val output = Channel<Message>() val messages: ReceiveChannel<Message> get() = output
override val messages = Channel<Message>() Если я правильно понимаю твою проблему, то тебя никто не обязывает оставлять ровно такой тип при оверрайде.
Обсуждают сегодня