вот код, я мучался и нашел что в java можно так сделать, хотелось бы без рефлексий:
abstract class Model {
List<String> getFields();
}
class Data extends Model {
int field1
int field2
Data({required this.filed1, required this.filed2})
List<String> getFields() {
return ["field1", "field2"];
}
}
class Table<T extends Model> {
final List<T> dataList;
late List<String> fieldList;
Exec({required this.dataList}) {
if (dataList.isEmpty) {
fieldList = T.getFields(); // тут не работает, я пробовал разное: static функцию, из Model вызывать, создавать именованый конструктор который создает пустой клас...
} else {
fieldList = fieldList.first.getFields();
}
}
}
// и так пробовал
class Table {
final List<Model> dataList;
late List<String> fieldList;
Exec({required this.dataList}) {
if (dataList.isEmpty) {
fieldList = Model.getFields(); // тут конечно же вызывается класс Model ))
} else {
fieldList = fieldList.first.getFields();
}
}
}