【发布时间】:2020-11-28 14:11:02
【问题描述】:
我正在尝试在我的班级中添加单例模式,但我收到 Iniliziating formal parameters can't be used in factory constructors 错误。这是我尝试过的:
import 'package:json_annotation/json_annotation.dart';
part 'user.g.dart';
@JsonSerializable()
class User {
final String email;
final String token;
final bool wordtestCompleted;
User.forJson({this.email, this.token, this.wordtestCompleted})
factory User.fromJson(Map<String, dynamic> json) => _$UserFromJson(json);
Map<String, dynamic> toJson() => _$UserToJson(this);
static final User _singleton = User._internal();
factory User({this.email, this.token, this.wordtestCompleted}) {
return _singleton;
}
User._internal();
}
如何解决?
【问题讨论】:
-
你打算如何创建这个单例?您为电子邮件、令牌等传递了什么值?如何?您是否正在尝试从一段 JSON 实例化单例,当然,您只会这样做一次?那么,这个单例的用例是什么?
-
@RichardHeap 这个类的主要目的是从 da api 接收数据并解析它。所以我想在解析完json字符串后将这个类用作Singleton