По сути, причина того, что вы делаете, не работает, потому что то, что I
является подклассом ViewIntent
.Ваш объект также является подклассом ViewIntent
.Это совершенно другой подкласс.Актерский состав, который вы делаете, похож на попытку преобразовать StringBuilder
в String
.
Теперь давайте обсудим, что, по вашему мнению, вы «хотите» сделать, и почему это тоже не работает.Чтобы действительно получить желаемый результат, вам нужно непосредственно создать тип I
, например:
return object : I {}
И мы заменили этот I
фактическим классом
return object : SomeClass {}
это, конечно, тоже не получится.Необходимо вызвать конструктор SomeClass
, а вы этого не делаете.И нет никакого способа узнать, что передать в этот конструктор при использовании универсального типа.