Котлин о преобразовании в общий класс

Как преобразовать код ниже в общий класс, чтобы можно было указать параметр типа T вместо конкретного типа User ?

 class UserService : BaseService { val query = datastore.createQuery(User::class.java) } 

@Ufkoku верен, но я подумал, что немного больше объяснений может помочь.

 class UserService<T>(val clazz: Class<T> : BaseService { val query = datastore.createQuery(clazz) } 

Обратите внимание, что с использованием обобщенных генериков Kotlin вы также можете создать конструкцию удобства для вышеописанного, которая позволяет вам построить один, не передавая экземпляр Class :

 class UserService<T>(val clazz: Class<T> : BaseService { val query = datastore.createQuery(clazz) companion object { inline fun <reified T> create() = UserService(T::class.java) } } 

Итак, вы можете построить их как val s = UserService(String::class.java) или val s = UserService.create<String>()

 class Service<T>(val type: Class<T>) { val query: Object init { //init query } } 
Intereting Posts
RecyclerView в заголовке другого RecyclerView (Mvvm ​​+ Databinding + Kotlin) ViewPager во Фрагменте не работает второй раз Выделенный объект с помощью метода Mockito Kotlin без обрушения Android Studio 3.0 Kotlin не работает должным образом Предельная функция в Котлине Каков правильный способ использования расширений Anko Coroutines? версия kotlin, которая используется для построения с градиентом (1.1.2-5), отличается от той, что включена в плагин IDE (1.1.2-4) Как перечислить аннотации полей в Котлине? Зачем связывать объекты буфера OpenGL? Обратный экземпляр enum непосредственно без класса в Котлине Функция расширения вызова внутри класса java как любой оператор RX Как вводить слушателей? kotlin android – Xposed IllegalArgumentException 'android.content.res.CoollifeUITpedArray' Абстрактный класс Котлина с общим параметром и методами, которые используют тип param Как добавить графическое представление в android с помощью Kotlin?