Код: Выделить всё
enum class NS(val clazz: Class, val description: String){
fooe(Foo::class.java, "foo"),
bare(Bar::class.java, "bar")
}
Например, я хотел бы получить список с помощью ns.fooe.
Может быть, я нужно что-то добавить в мое перечисление?
Я думал, что получится вот так
Код: Выделить всё
fun getList(t: Class): List {
return ArrayList()
}
val list = getList(ns.fooe.clazz) //list:List
Предыстория
Я отправляю на сервер несколько запросов параллельно, и чтобы понять, на какой из них получен ответ, мне нужен 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(...)
}
Подробнее здесь: https://stackoverflow.com/questions/790 ... otlin-enum