Реализация свойства, которое использует класс - PullRequest
0 голосов
/ 19 сентября 2019

В следующем коде:

class MyValidator: MySubject {        
    override val subject = NonNullableBehaviourSubject(ValidationResponse())
}


class NonNullableBehaviourSubject<T : Any>(defaultValue: T) : Subject<T>() {
{

interface MySubject {
   var subject: ...
} 

MyValidator реализует интерфейс MySubject.Этот интерфейс имеет свойство под названием субъект.Как определить это свойство для класса NonNullableBehaviourSubject?

1 Ответ

0 голосов
/ 19 сентября 2019
interface A<T: Any> {
    val c: C<T>
}

class B<T: Any> : A<T> {
    override val c: C<T> = C<T>()
}

class C<T: Any> {

}

Довольно понятно.Объявите ваше поле как val в интерфейсе, если вам нужно, чтобы реализация была val s, или объявите его как var, и ваши реализации должны также использовать var.

Редактировать: так как этодженерики, вы должны также передать типы.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...