тип ‘Список’ не является подтипом типа ‘Список’

#dart #aqueduct

#dart #акведук

Вопрос:

Я использую aqueduct и получаю ошибку

 'List<Serializable>' is not a subtype of type 'List<MyManagedObject>' of 'list' #0 _TypeError._throwNew (dart:core/runtime/liberrors_patch.dart:89:51)
  

но я не знаю, что это такое? Я нормально запускал свой код и просто получаю эту ошибку, которую я не могу решить, я много гуглю, но не могу найти решение.
Это моя «точка входа»

 @override
Controller get entryPoint {
  final router = Router();
  router
        .route('${apiBaseUrl}/objects')
        .link(() => ObjectController(context));
}
  

и это мой метод post:

 @Operation.post()
Future<Response> createMyObject(@Bind.body() List<MyManagedObject> list) async {
  ...
  return Response.ok("ok");
}
  

Я думаю, что это может быть ошибкой библиотеки, но я просто не могу знать.

Комментарии:

1. вы читали документы по сериализации? aqueduct.io/docs/http/request_and_response/… Возможно, они не поддерживают List<T> , но я не уверен … в любом случае, похоже, что ваш список принимает MyObject и ошибка говорит MyManagedObject ?

2. спасибо Ренато, я меняю реальный класс на ‘MyObject’ для лучшей абстракции. Я читаю вашу ссылку, но я использовал со ‘List’ после обновления, а затем сломался.

Ответ №1:

В Dart 2.1.1 было критическое изменение, которое вызвало проблему со списками привязки. Это было исправлено в Aqueduct 3.2 (выпущен сегодня 3/7).