我正在为我的应用程序使用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;
Run Code Online (Sandbox Code Playgroud)
第二类拥有Party类型的字段.但这并没有扩展RealmObject
public class CreatePurchaseOrder implements Parcelable {
public int voucherNumber;
public Date date;
public Party party;
String agent;
Run Code Online (Sandbox Code Playgroud)
第三个类为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;
Run Code Online (Sandbox Code Playgroud)
使用此方法,它会生成错误消息的错误消息 屏幕截图
那么有必要使用RealmObject扩展每个Model类吗?
从技术上讲,您不必RealmObject直接从模型类扩展.
该文件说:
通过扩展RealmObject基类来创建领域模型类.
这意味着如果你不扩展RealmObject,你的类不是一个Realm模型,因此它不能存储在一个领域.
但是,您也可以使用实现RealmModel界面并注释模型类@RealmClass
@RealmClass
public class MyModel implements RealmModel {
}
Run Code Online (Sandbox Code Playgroud)
提到这里:
为什么模型类需要扩展RealmObject?
我们需要为您的模型类添加Realm特定功能.它还允许我们在API中使用泛型,使其更易于阅读和使用.如果您不想扩展基类,则可以改为实现RealmModel接口.
和这里:
扩展RealmObject基类的另一种方法是实现RealmModel接口并添加@RealmClass注释.
这是实现同一目标的不同方法.您遇到的问题是相同的.您不能将普通对象存储在领域中.您必须使用上述两种方法之一将模型类连接到Realm.
请注意,如果您使用第二种方法,则用法不同:
// With RealmObject
myModel.isValid();
// With RealmModel
RealmObject.isValid(myModel);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1681 次 |
| 最近记录: |