入行没几年的小码农,近期学习Kotlin,做一份笔记记录,此文依据《Kotlin实战》这本书的流程记录,部分示例内容均摘自《Kotlin实战》,记下自己的理解,本篇将记录注解和反射的知识点。
Kotlin学习笔记系列
新手上路,Kotlin学习笔记(一)-- Kotlin入门介绍
新手上路,Kotlin学习笔记(四)---Lambda表达式在Kotlin中的使用
新手上路,Kotlin学习笔记(五)---Kotlin中的类型系统
新手上路,Kotlin学习笔记(六)---运算符重载和其它约定
新手上路,Kotlin学习笔记(七)---Lambda作为形参和返回值的使用
一、注解
1、注解的使用方式
和java中一样,注解使用的时候使用@符号作为前缀,但是在注解实参的使用上,和Java有一些不同之处
(1)把一个类指定为注解实参的时候,需要加上::class ,如 @MyAnnotation(MyClass::class)
(2)将另一个注解指定为注解实参的时候,需要去掉注解前的@符号,如下面ReplaceWith是另一个注解
在Kotlin中如果使用Deprecated注解,还可以在其实参中使用ReplaceWith注解,这样使用后,在调用过期的方法时,将会有使用新方法的快速修正功能。
(3)把一个数组指定为一个实参的时候,使用arrayOf函数,如@RequestMapping(path= arrayOf("/foo", "/bar"))。如果注解类是在Java中声明的,命名为value的形参按需自动地被转换成可变长度的形参,所以不用arrayOf函数就可以提供多个实参。
注解的实参需要在编译期就是已知的,所以如果要把一个属性当做注解使用,必须用const编辑,并且必须是基本数据类型或者String类型的值。