Gradle添加依赖及使用注解(添加插件)
一、基于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方法
好了,就不会报错了,就完成了

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
4月04日云栖精选夜读:阿里云MaxCompute被Forrester评为全球云端数据仓库领导者
参考消息网3月19日报道 日前,全球权威调研机构佛瑞斯特研究公司(Forrester)发布《2018年一季度云端数据仓库》报告。报告对大数据服务商的主要功能、区域表现、细分市场和典型客户等进行了全面评估,最终AWS、阿里云、谷歌、微软四大巨头杀入全球一线阵营。 热点热议 阿里云MaxCompute被Forrester评为全球云端数据仓库领导者 作者:隐林 阿里云加快技术赋能 助推人工智能新时代 作者:云攻略小攻 阿里云田丰:软件的SAAS化和SAAS软件的AI化是行业的重要趋势 作者:飞天战略营 知识整理 (Keras)基于深度学习SketchCode将线框原型图转换成HTML代码 作者:【方向】 如何走近深度学习人脸识别?你需要这篇超长综述 | 附开源代码 作者:技术小能手 手把手:用Python实现一个基于RSA算法的区块链客户端 作者:技术小能手 利用Fiddler抓取APP 作者:1181322821814908 西方在建墙,东方在修路 作者:飞天战略营 美文回顾 Java多线程学习(一)Java多线程入门 作者:一只蜗牛呀 月薪1万和5万的程序员有何区别?或许是认知边界。 作...
- 下一篇
Linux中使用yum安装jdk
1.查看yum中管理的java的版本 输入以下命令,以查看可用的JDK软件包列表: yum search java | grep -i --color JDK 2.安装jdk 以java-1.8.0-openjdk-devel.x86_64为例: yum install java-1.8.0-openjdk-devel.x86_64 3.配置全局使用(可选) 让系统上的所有用户使用java(openjdk) ,则要进行下面的操作: vi /etc/profile 将下面的三行粘贴到 /etc/profile 中: export JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.161-2.b15.el7_2.x86_64 export CLASSPATH=.:$JAVA_HOME/jre/lib/rt.jar:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar export PATH=$PATH:$JAVA_HOME/bin 保存关闭后,执行,让设置立即生效: source /etc/profile...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- MySQL8.0.19开启GTID主从同步CentOS8
- CentOS6,CentOS7官方镜像安装Oracle11G
- Mario游戏-低调大师作品
- CentOS8,CentOS7,CentOS6编译安装Redis5.0.7
- Docker使用Oracle官方镜像安装(12C,18C,19C)
- 设置Eclipse缩进为4个空格,增强代码规范
- CentOS6,7,8上安装Nginx,支持https2.0的开启
- CentOS关闭SELinux安全模块
- SpringBoot2更换Tomcat为Jetty,小型站点的福音
- SpringBoot2编写第一个Controller,响应你的http请求并返回结果