wal*_*ker 6 code-generation flutter json-serialization
我正在尝试在flutter中使用built_value,发现如果我声明了一个Type use built_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;
}
Run Code Online (Sandbox Code Playgroud)
并像这样使用它:
Post p = Post();
p.titie = "hello world";
Run Code Online (Sandbox Code Playgroud)
得到错误:
[dart] 在“Post”类中没有名为“title”的 setter。
我不熟悉这个builder东西,即使我发现它PostBuilder具有所有属性的设置器: PostBuilder().title = 'hello world'; 但我该如何使用它?
Gün*_*uer 10
BuiltValue 类是不可变的。这是它的主要特点之一。
不变性意味着您无法修改实例。每次修改都必须产生一个新实例。
几种方法之一是
p = (p.toBuilder().titie = 'hello world').build();
Run Code Online (Sandbox Code Playgroud)
获取更新的实例。
或者
p = p.rebuild((b) => b..title = 'hello world');
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2411 次 |
| 最近记录: |