Поскольку во время выполнения все параметры универсального типа исчезают (стираются), среда выполнения не может действительно проверить, является ли coordinator is T
, потому что не имеет представления, что такое T
.
Вместо проверки типа coordinator
перед его назначением, почему бы не изменить тип параметра с Coordinator
на T
, чтобы компилятор мог гарантировать, что coordinator
всегда будет назначаться к свойству coordinator
в интерфейсе?
fun setCoor(coordinator: T) {
this.coordinator = coordinator
}
Как видите, метод setCoor
на самом деле не нужен. Вы можете просто установить свойство как обычно:
coordinator = ...