Kotlin PoKo 和 Parcelize 注解
2019-08-26 本文已影响0人
TengFeiGo
在Kotlin项目中集成PoKo
PoKo主要通过注解的方式定义在数据类上,data 修饰的 class 在Kotlin中表示数据类,它是默认没有“空构造方法”,所以 PoKo 的主要作用在于让被修饰的数据类具有空构造方法。
1、在你的项目中添加noarg和allopen插件
//在moudle的build.gradle文件中添加
apply plugin: 'kotlin-noarg'
apply plugin: 'kotlin-allopen'
2、在项目的build.gradle dependencies文件中添加
classpath "org.jetbrains.kotlin:kotlin-noarg:$kotlin_version"
classpath "org.jetbrains.kotlin:kotlin-allopen:$kotlin_version"
3、新建PoKo文件
@Target(AnnotationTarget.CLASS)
@Retention(AnnotationRetention.BINARY)
annotation class PoKo
4、在moudle的gradle文件与android闭包同级下添加
noArg {
//PoKo的路径必须是你定义PoKo类的路径
annotations "com.tengfei.common.anno.PoKo"
}
allOpen{
annotations "com.tengfei.common.anno.PoKo"
}
注意点:你的所有数据类都非常有必要添加PoKo注解,为了避免莫名其妙的错误所有被data修饰的类都必须添加PoKo注解
使用 Parcelize 注解 简化序列化的操作
在序列化某个数据类的时候你需要实现 Parcelable 和 Serializable接口,Android中建议实现 Parcelable ,但你会发现需要重写一大堆方法,虽然有开发插件的帮助,你没必要自己写,但一个类中堆积了这么多代码看起来也非常的不舒服,Kotlin中有个非常好的方法来简化这一个步骤。
1、在你moudle的gradle文件中添加
//这个通常在你新建Kotlin项目的时候会自动添加
apply plugin: 'kotlin-android-extensions'
2、添加闭包
kotlin{
experimental{
coroutines "enable"
}
androidExtensions{
experimental = true
}
}
3、如何使用该注解,你只需要实现 Parcelable 接口,并在数据类上添加 @Parcelize 注解
@PoKo
@Parcelize
data class Plan(var name: String,
var space: Int,
var private_repos: Int,
var collaborators: Int) : Parcelable