Вы не можете вызывать статические методы для переменных типа.Статические методы должны быть известны во время компиляции, а значение переменной типа не известно до времени выполнения.
Вы можете параметризовать свой класс с помощью метода, который вы хотите вызвать:
class DataList<T> {
final bool success;
dynamic data;
T dynamic Function(Object) fromJson;
DataList({
this.success,
List<dynamic> data,
this.fromJson;
}) {
castDataToList(data);
}
factory DataList.fromJson(Map<String, dynamic> json, T fromJson(Object o)) {
return DataList(
success: json['success'],
data: json['data'],
fromJson: fromJson,
);
}
void castDataToList(jsonData) {
this.data = List<T>.from(jsonData.map((x) => fromJson(x)));
}
}