0
点赞
收藏
分享

微信扫一扫

Kotlin 序列化Parcelable/Serializable

开发中,序列化是常见操作,在java中,我们一般会用到​​Serializable​​​或者​​Parcelable​​​,优缺点就不赘述了,今天来看看​​kotlin​​中的序列化。

Parcelable

1.添加配置

app目录下的​​build.gradle​​文件

android {
...
androidExtensions {
experimental = true
}
}

2.添加注解并实现Parcelable

@Parcelize
data class User(val name: String) : Parcelable

以上就完成了序列化。就这么简单。



3.泛型序列化

我们在实际开发中经常会对bean对象做抽取,这里就涉及到了泛型序列化。

@Parcelize
data class BaseBean<T : Parcelable>(
val errorMsg: String,
val errorCode: Int,
val data: T
) : Parcelable

这里需要注意的是泛型也要实现​​Parcelable​​​,即​​<T : Parcelable>​​ 。



Parcelable源码

public interface Parcelable {
int CONTENTS_FILE_DESCRIPTOR = 1;
int PARCELABLE_WRITE_RETURN_VALUE = 1;

int describeContents();

void writeToParcel(Parcel var1, int var2);

public interface Creator<T> {
T createFromParcel(Parcel var1);

T[] newArray(int var1);
}

public interface ClassLoaderCreator<T> extends Parcelable.Creator<T> {
T createFromParcel(Parcel var1, ClassLoader var2);
}
}

可以看到还是有​​writeToParcel​​​方法和​​Creator​​等,其实也没少,只是不再需要我们去写了。

Serializable

Serializable的方式比较简单,直接实现Serializable就可以了

data class User( 
val id: Int,
val name: String
) : Serializable




举报

相关推荐

0 条评论