общие интерфейсы с методами reified

У меня есть несколько объектов для переопределения памяти:

interface reinterpreter<T> { operator fun get(index: Int): T operator fun set(index: Int, value: T): Any } object vec1bData : reinterpreter<Vec1b> { override operator fun get(index: Int) = Vec1b(data, index * Vec1b.size) override fun set(index: Int, value: Vec1b) = value.to(data, index * Vec1b.size) } 

но когда я печатаю

 inline fun <reified T> data():reinterpreter<T> = when (T::class.java) { Vec1b::class.java -> vec1bData } 

Я получил:

требуемый reinterpeter<T> , но найден vec1bData

Как я могу решить?

    Тип vec1bData не является допустимым заменой для reinterpeter<T> , потому что T vec1bData не является общим, а устанавливается в Vec1b .

    Это означает, что, используя только функцию fun <reified T> data(): reinterpreter<T> , вы должны вернуть reinterpreter<T> . Вместо этого вы возвращаете vec1bData , которая имеет тип reinterpreter<Vec1b> вместо reinterpreter<T> .

    Intereting Posts
    Приложение Android не может работать в любом эмуляторе Строка к растровому изображению в Котлине Как начать работу с viewmodel при успехе входа в шаблон mvvm Kotlin java абстрактный класс IllegalAccessError ffmpeg допустимые ошибки декодирования Поле доступа к котлину в другом месте? В чем разница между var map = HashMap <Int, String> () и var map = HashMap <Int, String> (n)? только классы разрешены в левой части литерала класса при использовании Mockito и kotlin Использование префикса «m» для переменных в Котлине Неправильное отношение типа Corda WireTransaction – TransactionSignature выведено, но DigitalSignature.WithKey ожидается Ожидаемое несоответствие типа с выражением в Котлине Первоначальная инициатива класса Kotlin с аспектом Kotlin с пакетом RxKotlinFX дает Не удается получить доступ к ошибке класса значение переменной получает значение null в модификации Авторизация Spotify Code отклоняется за плохие учетные данные, несмотря на то, что отправлен действительный токен