其中HttpResult和DataEntities元素类为
/** * Created by JokAr on 2017/6/5. */ data class DataEntities(@SerializedName("_id") var _id: String, @SerializedName("createdAt") var createdAt: String, @SerializedName("desc") var desc: String, @SerializedName("publishedAt") var publishedAt: String, @SerializedName("source") var source: String, @SerializedName("type") var type: String, @SerializedName("url") var url: String, @SerializedName("used") var used: Boolean, @SerializedName("who") var who: String) : Parcelable { companion object { @JvmField val CREATOR: Parcelable.Creator<DataEntities> = object : Parcelable.Creator<DataEntities> { override fun createFromParcel(source: Parcel): DataEntities = DataEntities(source) override fun newArray(size: Int): Array<DataEntities?> = arrayOfNulls(size) } } constructor(source: Parcel) : this( source.readString(), source.readString(), source.readString(), source.readString(), source.readString(), source.readString(), source.readString(), 1 == source.readInt(), source.readString() ) override fun describeContents() = 0 override fun writeToParcel(dest: Parcel, flags: Int) { dest.writeString(_id) dest.writeString(createdAt) dest.writeString(desc) dest.writeString(publishedAt) dest.writeString(source) dest.writeString(type) dest.writeString(url) dest.writeInt((if (used) 1 else 0)) dest.writeString(who) } } /** * Created by JokAr on 2017/6/5. */ data class HttpResult<T>(@SerializedName("error") var error: Boolean, @SerializedName("results") var results: T?)其中HttpResultFunc为:
/** * Created by JokAr on 2017/6/5. */ class HttpResultFunc<T> :Function<HttpResult<T>,T> { override fun apply(tHttpResult: HttpResult<T>?): T { if (tHttpResult != null) { if (tHttpResult?.error) { throw APIException() } } return tHttpResult?.results as T } }到此就结束了,跟在java中使用没多大区别,就只是在最后的subscribe有点区别,在代码中已注明