您现在的位置是:首页 > 文章详情

Gradle添加依赖及使用注解(添加插件)

日期:2018-04-03点击:801

一、基于Gradle可以构建很多项目,下面以Kotlin项目为例

package com.reflections import sun.management.Agent /** * @author:wangdong * @description:反射 */ /**定义一个person类*/ //通过poko注解生成无参构造的方法 //@Noarg class Person(val name:String,val age: Int) //默认是没有无参构造的 class DefaultConstructor()  fun main(args: Array<String>) { //拿到class的2种方式 //1. val clazz = Person::class.java //new一个person实例 //2. val person = Person("wangdong",23) val clazz2 = person.javaClass val clazz3 = person::class.java val defaultConstructor = DefaultConstructor::class.java.newInstance() val person2 = clazz2.newInstance() //这个在没有添加@Noarg注解是不行的 }

二、在运行这个main方法的时候,会报异常
原因是Person类默认情况下是没有无参构造的

Exception in thread "main" java.lang.InstantiationException: com.reflections.Person at java.lang.Class.newInstance(Class.java:427) at com.reflections.JavaReflectionsKt.main(JavaReflections.kt:28) Caused by: java.lang.NoSuchMethodException: com.reflections.Person.<init>() at java.lang.Class.getConstructor0(Class.java:3082) at java.lang.Class.newInstance(Class.java:412) ... 1 more

三、在Gradle项目中引入插件并定义注解,以kotlin-noarg插件为例
改写build.gradle文件

buildscript { ext.kotlin_version = '1.2.30' repositories { mavenCentral() } dependencies { classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version" //1.添加一个无参构造的插件 classpath "org.jetbrains.kotlin:kotlin-noarg:$kotlin_version" } } group 'net.kotlinreflects.com' version '1.0-SNAPSHOT' apply plugin: 'java' apply plugin: 'kotlin' //2.引用无参构造 apply plugin: 'kotlin-noarg' //3.配置注解,用来给class生成默认无参的方法的 noArg{ //配置类的路径 annotations "com.reflections.Noarg" } sourceCompatibility = 1.8 repositories { mavenCentral() } dependencies { compile "org.jetbrains.kotlin:kotlin-stdlib-jdk8:$kotlin_version" testCompile group: 'junit', name: 'junit', version: '4.12' } compileKotlin { kotlinOptions.jvmTarget = "1.8" } compileTestKotlin { kotlinOptions.jvmTarget = "1.8" }

四、根据build.gradle类中的路径,写一个注解类
这里写图片描述

package com.reflections /** * @author:wangdong * @description:配置一个注解 */ annotation class Noarg

五、使用注解
将第一步中的注解开启

@Noarg class Person(val name:String,val age: Int) //默认是没有无参构造的

六、运行main方法
好了,就不会报错了,就完成了

原文链接:https://yq.aliyun.com/articles/614552
关注公众号

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。

持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。

转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。

文章评论

共有0条评论来说两句吧...

文章二维码

扫描即可查看该文章

点击排行

推荐阅读

最新文章