如何在没有构造函数的情况下初始化自定义对象列表 [Dart/Flutter]

How to initialize list of custom object with no constructor [Dart/Flutter]

我一直面临这个问题,我有一个带有静态值的模拟 class 用于测试。 但我无法为没有构造函数的自定义对象 class 创建列表,如下所示。

class Video { 
  
  Video();  //this is default constructor

  late int id;
  late String name;
}

问题: 现在我想初始化一个静态列表。

final List<Video> videos = [
  new Video({id = 1, name = ""}) //but this gives an error. 
];

I don't want to change class constructor.

有没有什么方法可以在没有构造函数的情况下初始化自定义列表 class?

从技术上讲,这可行:

final List<Video> videos = [
  Video()..id = 1..name = '',
  Video()..id = 2..name = 'another',
];

您基本上是在创建 Video 实例之后但在列表中之前分配 late 属性。

但是,您可能不需要这些属性 late-initizalized,而是为其使用构造函数

class Video { 
  
  Video({required this.id, required this.name}); 

  int id;
  String name;
}

final List<Video> videos = [
  Video(id: 1, name: ''),
  Video(id: 2, name: 'another'),
];

但这当然取决于您的用例