gpt4 book ai didi

android - 在使用 Realm 时是否有必要使用 RealmObject 扩展每个模型类?

转载 作者:太空狗 更新时间:2023-10-29 16:00:03 25 4
gpt4 key购买 nike

我正在为我的应用程序使用 Realm ORM。我有 3 个模型类,其中两个扩展了 RealmObject 而另一个没有。

public class Party extends RealmObject implements Parcelable {
@PrimaryKey
public int id;
public String name;
public String name_en;
public String name_ne;
public String address;
public String phoneNumber;
public String taxRegistrationNumber;
public String partyType;

第二个类包含一个类型为 Party 的字段。但这并没有扩展 RealmObject

public class CreatePurchaseOrder implements Parcelable {
public int voucherNumber;
public Date date;
public Party party;
String agent;

第三个类包含一个用于 CreatePurchaseOrder 的字段并扩展了 RealmObject

[public class CreatePurchaseOrderRow extends RealmObject implements Parcelable {
@PrimaryKey
public int id;
private int serialNumber;
private String specification;
private float quantity;
private float rate;
private String remarks;
private boolean fulfilled;
private CreatePurchaseOrder createPurchaseOrder;

使用这种方法,它会生成一条错误消息 screenshot of error message

screenshot of error message

那么是否有必要用 RealmObject 扩展每个 Model 类?

最佳答案

从技术上讲,您不必直接从您的模型类扩展 RealmObject

docs说:

Realm model classes are created by extending the RealmObject base class.

这意味着如果你不扩展 RealmObject,你的类就不是一个 Realm 模型,因此它不能存储在一个 Realm 中。

然而,您也可以实现 RealmModel 接口(interface)并使用 @RealmClass 注释您的模型类

@RealmClass
public class MyModel implements RealmModel {

}

如前所述here :

Why do model classes need to extend RealmObject?

We need to add Realm specific functionality to your model classes. It also allows us to use generics in our APIs, making it easier to read and use. If you don’t want to extend a base class you can instead implement the RealmModel interface.

here :

An alternative to extending the RealmObject base class is implementing the RealmModel interface and adding the @RealmClass annotation.

是同一个目的,不同的手段。你遇到的问题是一样的。您不能在 Realm 中存储普通对象。您必须使用上述两种方式之一将您的模型类连接到 Realm。

请注意,如果您使用第二种方法,用法会有所不同:

// With RealmObject
myModel.isValid();

// With RealmModel
RealmObject.isValid(myModel);

关于android - 在使用 Realm 时是否有必要使用 RealmObject 扩展每个模型类?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38451001/

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