Firebase-х snapshot.getValue()
ожидает называться следующим образом:Как получить универсальный класс параметра в Котлин
snapshot?.getValue(Person::class.java)
Однако я хотел бы заменить Person
с общим параметром, который передается в класс с помощью объявления класса т.е.
DataQuery<T : IModel>
и использовать этот общий параметр, чтобы сделать что-то вроде этого:
snapshot?.getValue(T::class.java)
, но когда я пытаюсь, что я получаю ошибку о том, что
только классы могут быть использованы на левой стороне класса буквального
Можно ли обеспечить класс ограничение на общий параметр, как в C#, или есть какой-то другой синтаксис, который я могу использовать для получения информации типа для общего параметра?
вы можете предоставить больше контекста на ваш вопрос, как функция с параметром типа по сравнению с классом с параметром типа будет иметь два разных ответа. Вы приняли ответ только для ссылок, который охватывал один из этих случаев. –
Ваш вопрос должен показывать полный контекст кода, вызывающего ошибку. В некоторых случаях ваш код будет правильным (если мы предположим, что это встроенная функция с типом reified), в других случаях нет.И есть два случая, когда дженерики могут быть, но вы не даете понять. –