Получить список из Class<>, хранящегося в перечислении Kotlin [закрыто]JAVA

Программисты JAVA общаются здесь
Ответить Пред. темаСлед. тема
Anonymous
 Получить список из Class<>, хранящегося в перечислении Kotlin [закрыто]

Сообщение Anonymous »

Предположим, у меня есть классы foo и bar, а также следующее перечисление:

Код: Выделить всё

enum class NS(val clazz: Class, val description: String){
fooe(Foo::class.java, "foo"),
bare(Bar::class.java, "bar")
}
Я хочу иметь возможность получить список, где T — это класс, указанный в константах перечисления ns.fooe и ns .bare.
Например, я хотел бы получить список с помощью ns.fooe.
Может быть, я нужно что-то добавить в мое перечисление?
Я думал, что получится вот так

Код: Выделить всё

fun  getList(t: Class): List {
return ArrayList()
}
val list = getList(ns.fooe.clazz)   //list:List
но я не знаю, как выполнить приведение типа, поскольку список в виде List приводит к ошибке «Неразрешенная ссылка: clazz» .
Предыстория
Я отправляю на сервер несколько запросов параллельно, и чтобы понять, на какой из них получен ответ, мне нужен List вместо списка.

Код: Выделить всё

  override suspend fun  loadNS(ns: NS, table: Class): Flow =
flow{
//.... loading data from server
//.... parsing data        {
BaseDao.insertList(list.map { it.mapToDTO(it as Foo) })
//mapToDTO ->is converting to Data Table Object
//fun mapToDTO(foo:Foo):FooDTO
//you can ignore it.
//FooDTO is the object with which Room works.
emit(...)
}
is Bar ->{
....
но думаю можно сократить

Код: Выделить всё

fun  saveTable(val list:List, val ns:NS):Flow =
flow{
BaseDao.insertList(list.map{it.mapToDTO(it as ns.clazz)}) //doesn't work
emit(...)
}
Я знаю, что это можно легко сделать с помощью SQL-запроса, но это показывает проблему более четко, т.к. у меня она возникает в нескольких местах.

Подробнее здесь: https://stackoverflow.com/questions/790 ... otlin-enum
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «JAVA»