flutter - 内置值对象的 setter 是什么

标签 flutter code-generation json-serialization

我尝试在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] No setter named 'title' in class 'Post'.

我不熟悉 builder 的东西,即使我发现 PostBuilder 具有所有属性的 setter : PostBuilder().title = ' Hello World '; 但是我该如何使用呢?

最佳答案

BuiltValue 类是不可变的。这是它的主要特点之一。
不变性意味着您不能修改实例。每次修改都必须产生一个新实例。

几种方法之一是

p = (p.toBuilder().titie = 'hello world').build();

获取更新的实例。

或者

p = p.rebuild((b) => b..title = 'hello world');

关于flutter - 内置值对象的 setter 是什么,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51556540/

相关文章:

c++ - 是否可以使用 dbusxx-xml2cpp 生成非阻塞调用?

json - 自定义 CL_SXML_STRING_WRITER 创建的 JSON

flutter - 如何在函数或类中传递变量引用?

flutter - 如何在 flutter 中制作圆形 TextField?

firebase - Flutter Firebase 身份验证

java - 使用 Java 在编译时生成代码?

flutter 时间计算

javascript - 从 Django 模型中生成 JavaScript 对象

java - Jackson 在 Json 响应中显示字段

flutter - 即使在 Dart 中有下划线,如何制作公共(public)属性(property)?