Java领域未将静态字段识别为可持久

Java领域未将静态字段识别为可持久,java,android,realm,Java,Android,Realm,Realm给了我一个错误,抱怨我的类“必须至少有一个持久字段”。这个类有一个静态字段来存储我的应用程序中的首选项选项,以及一些其他静态方法 缩短代码: public class StreamingPreferences extends RealmObject { public static RealmList<RealmString> serviceStreamingPreferences; } public类StreamingPreferences扩展RealmObje

Realm给了我一个错误,抱怨我的类“必须至少有一个持久字段”。这个类有一个静态字段来存储我的应用程序中的首选项选项,以及一些其他静态方法

缩短代码:

public class StreamingPreferences extends RealmObject {
     public static RealmList<RealmString> serviceStreamingPreferences;
}
public类StreamingPreferences扩展RealmObject{
公共静态RealmList服务StreamingPreferences;
}

Realm和我的自定义RealmString类扩展了RealmObject,RealmList也是如此。我是一个全新的领域,这是我的模型中唯一没有添加一些非静态字段就无法工作的部分。有什么想法吗?

错误消息-“必须至少包含一个持久字段”

根本原因-仅在RealmObject类中使用静态字段

原因-Realm允许我们在RealmObject类中拥有静态字段,但由于静态字段不属于该类的实例(它们属于该类),因此静态字段在给定类的所有实例中具有相同的副本。由于Realm忽略所有静态字段,因此它不接受只有静态字段的RealmObject,我们必须将至少一个非静态字段与一个或多个静态字段放在一起

历史记录-如本文所述,Realm曾将静态字段作为RealmObject的一部分进行处理,但在讨论小组讨论后,Realm同意忽略所有静态字段

这是允许的

public class Test extends RealmObject {
    /* One non static filed */
    private int test1;
    /* One or more static filed(s) */
    public static int test2;
}
这是不允许的

public class Test extends RealmObject {
    /* Only static field(s) */
    public static int test1;
}

静态字段在
RealmObject
类中被允许的意义上得到了支持

它们会自动被忽略,不会被持久化


它是在中指定的。

您确定您使用的领域版本支持静态字段吗?是的,我使用的是版本1.1 realmstring看起来像什么这似乎是类ClassMetaData中领域的categorizeClassElements()函数中的错误。您应该与TeamRealm的人员联系,或者在Realm的GitHub中提出问题。目前,您可以通过在StreamingPreferences类中添加一个基本类型的字段来解决这个问题。e、 g.坦普菲尔德私人酒店;谢谢你,维拉杰,我提出了一个问题,并没有回答你的猜测。