【Android&Kotlin】在AndroidStudio上使用noArg和allOpen插件
来源:互联网 发布:js编辑器中文版 编辑:程序博客网 时间:2024/09/21 06:18
目前Android上有许多好用的库,但是它们在和Kotlin配合的时候,并不是那么愉快。Kotlin中的data class是一种非常好用的类,它可以自动生成许多方法,来方便我们的使用。但是Android的第三方库需要通过反射来加载一些class,这就要求class必需有一个无参的构造函数,而Kotlin的data class默认没有无参构造函数,并且data class默认为final类型,不可以被继承,这造成了第三方库使用的诸多不便。好在Kotlin官方为我们提供了两个插件,可以为我们解决以上两个问题。
首先,我们需要在Android工程根目录下的build.gradle文件中的适当位置添加以下代码:
buildscript { ... ext.kotlin_version = '1.1.60'//在启用Kotlin的情况下,这行是已存在的,无需添加 dependencies { ... classpath "org.jetbrains.kotlin:kotlin-noarg:$kotlin_version" classpath "org.jetbrains.kotlin:kotlin-allopen:$kotlin_version" }}
然后在app Module下build.gradle文件内适当的位置添加:
apply plugin: 'kotlin-noarg'apply plugin: 'kotlin-allopen'
在包上右键,选择New -> Kotlin File/Class,输入一个名称,Kind选择File,点击确定。
在新建的文件内输入:
annotation class Poko //Poko为刚才输入的名称
右键点击一下代码输入窗口,选择Copy Reference,复制此文件的包名+文件名。
回到app Module下的build.gradle文件内,在最后一行添加如下两行
noArg { annotation("aaa.bbb.ccc.ddd.Poko")//"aaa.bbb.ccc.ddd为模拟包名"}allOpen { annotation("aaa.bbb.ccc.ddd.Poko")}
最后点击 Sync Now等待AndroidStudio自动完成配置。
至此,你可以开始写你的代码了。
下面我会写一个DEMO,来验证noArg和allOpen是否配置成功。
创建一个新的Android工程,语言选择Java,AndroidStudio会自动为我们生成MainActivity.java和activity_main.xml文件。然后新建一个Kotlin类:Person
输入以下代码:
data class Person(val name:String, val age:Int)
打开MainActivity.java,在onCreate方法的最后添加以下代码:
try { Person person = Person.class.newInstance(); Log.i("MainActivity", person.toString());} catch (IllegalAccessException | InstantiationException e) { e.printStackTrace();}
我们通过java的反射来试图创建一个空参数的Person对象,然后输入这个对象中的数据。现在运行这个Android程序,理论上,这个程序是会出错的,因为我们捕获了这个异常,所以程序不会崩溃,但是异常信息还是会输出在Logcat:
我们发现,因为在第13行就报了异常,导致下面的Log并没有被执行。那么现在我们按之前上述的方式,配置好noArg和allOpen,并且回到Person内,为它加上注释:
完成后,我们再次运行这个程序,并观察Logcat,程序运行起来后,并没有错误信息,而且Log成功的输出了:
至此,可以确定,noArg配置成功。
- 【Android&Kotlin】在AndroidStudio上使用noArg和allOpen插件
- 在AndroidStudio中使用Kotlin
- Kotlin在AndroidStudio上的配置
- 在AndroidStudio上搭建 Kotlin 开发环境
- Android Studio安装Kotlin插件和使用
- AndroidStudio 安装Kotlin插件
- AndroidStudio安装kotlin插件
- KotLin的简单使用 KotLin入门基础 AndroidStudio中配置KotLin插件 新建KotLin工程
- 【Android】使用Kotlin在Android Studio上开发App
- 【Android】使用Kotlin在Android Studio上开发App
- AndroidStudio配置使用Kotlin
- 在AndroidStudio上使用GitHub
- 在AndroidStudio上使用leakcanary
- Android AndroidStudio 详解Kotlin的安装和使用(附下载demo)
- AndroidAnnotations在eclipse和AndroidStudio上的使用
- 初次是使用AndroidStudio用Kotlin语言新建Android项目
- 在Android Studio上使用IdeaVim插件
- Android Studio安装并使用Kotlin插件
- 多线程程序1
- H5网页开发新手入门-H5网页如何适应不同手机屏幕分辨率?
- 杰我科技,面试题
- matlab中reshape函数的用法
- 零基础学Python笔记
- 【Android&Kotlin】在AndroidStudio上使用noArg和allOpen插件
- 映射文件
- ARM—I2C
- 杭电oj1060
- Pycharm 集成Redis可视化插件Iedis
- window 下 bat 多条件判断
- 分布式环境的简单搭建
- 右边定宽,左边自适应css布局总结(三种方案)
- 重做日志与归档日志的区别