将自定义类型对象存储在Realm中

时间:2018-08-09 08:16:14

标签: android realm

我正在使用: gustavofao 库来解析json。

<android.support.design.widget.FloatingActionButton android:id="@+id/button" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="bottom|end" android:tint="@android:color/white" android:src="@android:drawable/ic_input_add" />

Resource.java

我有一个叫public interface Resource extends Parcelable { String getId(); void setId(String id); String getType(); void setType(String type); Links getLinks(); void setLinks(Links links); } 的班级:

Base.kt

然后我创建一个数据类public interface BaseInterface extends Parcelable { String getId(); void setId(String id); String getType(); void setType(String type); Links getLinks(); void setLinks(Links links); } public class Base implements BaseInterface { .... }

CustomDataClass.kt

我必须从JSON响应中获取一个名称为@Type(...) @Parcelize open class CustomDataClass( @SerialName("name") var name: String, @SerialName("lastname") var lastname: String, ) : RealmObject(), Resource { //@SerialName("item") var testItem: Resource ?= null @IgnoredOnParcel @PrimaryKey private lateinit var id: String @IgnoredOnParcel @Ignore private lateinit var links: Links constructor() : this("","") companion object { const val TYPE = "xxx" } override fun getId(): String { // } override fun setId(id: String) { // } override fun getType(): String { return TYPE } override fun setType(type: String?) { // } override fun getLinks(): Links { // } override fun setLinks(links: Links) { // } } 的字段。内容可以是三个对象:"item"AB。所有三个对象C

因此,基本上,我要做的是,将.. extend BaseResource作为属性添加到@SerialName("item") var testItem: Resource ?= null中,但是,我得到了一个错误:

CustomDataClass

来自Realm ...它真的不支持自定义类型吗?在这种情况下,我有什么选择?

如何定义我的自定义类型对象并将其插入DB中,因此Realm不会尖叫? :)

0 个答案:

没有答案