安装包 io.realm

枚举 ImportFlag

    • 枚举常量详细信息

      • CHECK_SAME_VALUES_BEFORE_SET

        public static final ImportFlag CHECK_SAME_VALUES_BEFORE_SET
        启用此标志后,如果字段包含的值与 Realm 中已存在的值相同,则不会将其写入 Realm 文件。

        对于本地 Realm,这仅对变更侦听器有影响,变更侦听器不会报告对未写入字段的更改。

        对于同步的 Realm,这也会影响服务器,因为需要上传和合并到服务器 Realm 中的更改更少,因此服务器的性能将得到提高。

        它还会影响服务器合并来自不同设备的更改的方式。 Realm 在合并对象中的各个字段时采用最后写入优先的方法,因此,如果某个字段未被写入,则该字段将被视为比其他已修改字段“更旧”。

        例如:

        1. 服务器开始时为(字段 A = 1,字段 B = 1)
        2. 设备 1 写入(字段 A = 2,字段 B = 2)。
        3. 设备 2 写入(字段 A = 3,字段 B = 1)但忽略(字段 B = 1),因为这是此时 Realm 文件中的值。
        4. 设备 1 将其更改上传到服务器,从而形成服务器(字段 A = 2,字段 B = 2)。 然后,设备 2 上传其更改。 由于 last-write-wins,服务器版本现在变为(字段 A = 3,字段 B = 2)。
        这通常是所需的行为,因为最终对象是两个设备最新更改的合并结果,但是,如果对象中的所有字段都被视为原子单元,则不应设置此标志,因为它将确保所有字段已设置,因此在将数据发送到服务器时具有相同的“年龄”。
        另请参阅:
        有关冲突解决的文档
    • 方法详细信息

      • values

        public static ImportFlag[] values()
        按声明顺序返回包含此枚举类型常量的数组。 此方法可用于迭代常量,如下所示:
        for (ImportFlag c : ImportFlag.values())   System.out.println(c);
        
        返回:
        包含此枚举类型常量的数组,按声明顺序排列
      • 的值

        public static ImportFlag valueOf​(String name)
        返回具有指定名称的该类型的枚举常量。 该字符串必须与用于声明此类型的枚举常量的标识符完全匹配。 (不允许使用多余的空白字符。)
        参数:
        name - 要返回的枚举常量的名称。
        返回:
        具有指定名称的枚举常量
        抛出异常:
        IllegalArgumentException - 如果此枚举类型没有指定名称的常量
        NullPointerException - 如果参数为 null