flutter - 内置值对象的设置器是什么
问题描述
我正在尝试在flutter中使用built_value,发现如果我声明了一个使用build_value的类型,我通常可以使用点语法为其属性赋值:我的声明是:
abstract class Post implements Built<Post, PostBuilder> {
Post._();
int get userId;
int get id;
String get title;
String get body;
factory Post([updates(PostBuilder b)]) = _$Post;
static Serializer<Post> get serializer => _$postSerializer;
}
并像这样使用它:
Post p = Post();
p.titie = "hello world";
得到错误:
[dart] 在“Post”类中没有名为“title”的二传手。
我不熟悉这builder
件事,即使我发现它PostBuilder
具有所有属性的设置器: PostBuilder().title = 'hello world'; 但我该如何使用它?
解决方案
BuiltValue 类是不可变的。这是它的主要特点之一。
不变性意味着您不能修改实例。每次修改都必须产生一个新实例。
几种方法之一是
p = (p.toBuilder().titie = 'hello world').build();
获取更新的实例。
或者
p = p.rebuild((b) => b..title = 'hello world');
推荐阅读
- css - 如果我添加并使用常规字体,为什么字体系列是粗体?
- amazon-web-services - 通过 ssh 将 EC2 连接到 Git
- python - Python 和 ASP .Net 核心之间的 ConnectionError
- xamarin - 在 Xamarin Mac 桌面应用程序中实现首选项屏幕
- javascript - face-api.js --- 通过网络摄像头识别
- rust - Rust 无法链接
- php - PHP codeigniter if 语句无法正常运行
- php - Laravel 8 和多个可选参数
- ios - 使用 iPhone 时 PeerJS 视频流不起作用 - iOS 到 Android 或 iOS 到 iOS - Node.js
- firefox - PermissionError:[Errno 13] 权限被拒绝:'geckodriver.log'