我在Android中实现了一个私人使用的应用程序,它以JSON格式从服务器请求一些数据,将其deselialize到POJO并需要将对象存储在本地数据库中。问题是Child
类包含泛型值,值也可以是基本类型(整数,字符串,...)或某些自定义对象。我试过了Realm,但我得到了NPE。我读过关于EAV-Pattern的内容,但我并不满意。
在数据库中存储包含通用值的对象的最佳方法是什么?我不依赖于特定的数据库,但更喜欢SQLite。
没有extends RealmObject
的数据结构的简单POJO:
public class Parent {
public int i;
public Child mChild;
}
包含通用字段的类:
public class Child<T> {
public int i;
public T mValue;
}
自定义对象:
public class Value {
public int i;
public String s;
}
尝试Realm的一个例子:
Parent p = new Parent();
p.i = 10;
// Child<String> c = new Child<>();
// c.mValue = "I'm a string!";
Child<Value> c = new Child<>();
Value v = new Value();
v.s = "I'm a custom object!";
v.i = 42;
p.mChild = c;
Realm.init(getApplicationContext());
Realm realm = Realm.getDefaultInstance();
realm.executeTransaction(new Realm.Transaction() {
@Override
public void execute(Realm realm) {
Parent parent = realm.copyToRealm(p);
}
});