Android学习之旅Android开发经验谈Android开发

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
上一篇下一篇

猜你喜欢

热点阅读