gpt4 book ai didi

android - @Ignore 在 Realm 中的实际应用?

转载 作者:塔克拉玛干 更新时间:2023-11-02 08:26:31 26 4
gpt4 key购买 nike

我一直在尝试在我的 Android 应用程序中添加 Realm。他们的文档解释得很好并且易于理解。但它无法解释这一特定 Realm 。我无法弄清楚 @Ignore 注释的实际用途。我知道此注释下的字段不会持久化。

有人可以分享一些用例吗?我也想知道这些 Realm 的范围。我的意思是,如果我将 @Ignore 字段设置为某个值,该值是否可用于该特定启动 session 的应用程序中的其他类。如果是,那么我们如何访问它?如果不是(我猜是这种情况),那我们为什么还需要这样一个字段?

我在这里和网上搜索过,但找不到相关信息。如果出于我的无知,我错过了一些资源,请指导我。

谢谢。

最佳答案

根据官方文档(参见 https://realm.io/docs/java/latest/ )@Ignore 在两种情况下很有用:

  1. 当您使用 GSON 集成并且您的 JSON 包含的数据多于您想要存储的数据,但您仍然希望解析它并在之后立即使用。

  2. 您不能在扩展 RealmObject 的类中创建自定义 getter 和 setter,因为它们将被覆盖。但是,如果您无论如何都想拥有一些自定义逻辑,可以将忽略的字段用作执行此操作的技巧,因为 Realm 不会覆盖它们的 getter 和 setter。示例:

    package io.realm.entities;

    import io.realm.RealmObject;
    import io.realm.annotations.Ignore;

    public class StringOnly extends RealmObject {

    private String name;

    @Ignore
    private String kingName;

    // custom setter
    public void setKingName(String kingName) { setName("King " + kingName); }

    // custom getter
    public String getKingName() { return getName(); }

    // setter and getter for 'name'
    }

忽略的字段只能从设置它们的对象访问(与 Java 中的常规对象相同)。

更新:正如@The-null-Pointer- 在评论中指出的,第二点已经过时。 Realm 现在允许在 Realm 模型中使用自定义 getter 和 setter。

关于android - @Ignore 在 Realm 中的实际应用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33981923/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com