我正在使用: 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"
,A
或B
。所有三个对象C
因此,基本上,我要做的是,将.. extend BaseResource
作为属性添加到@SerialName("item") var testItem: Resource ?= null
中,但是,我得到了一个错误:
CustomDataClass
来自Realm ...它真的不支持自定义类型吗?在这种情况下,我有什么选择?
如何定义我的自定义类型对象并将其插入DB中,因此Realm不会尖叫? :)