如何在没有构造函数的情况下初始化自定义对象列表 [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'),
];
但这当然取决于您的用例
我一直面临这个问题,我有一个带有静态值的模拟 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'),
];
但这当然取决于您的用例