Kotlin研发第二十三弹—— 注解

26 篇文章 0 订阅
25 篇文章 0 订阅

注解

  • 注解
    • 注解声明
    • 用法
    • 构造函数
    • Lambdas
    • Java注解

注解

注解声明

注解是一种将原数据附加到代码中的方法。声明注解需要在类前面使用annotation关键字:

//注解
@Target(AnnotationTarget.EXPRESSION, AnnotationTarget.CLASS, AnnotationTarget.FUNCTION, AnnotationTarget.VALUE_PARAMETER)
@Retention(AnnotationRetention.SOURCE)
annotation class TestAnnotation

@TestAnnotation
class TestAnnotationClid {
    @TestAnnotation fun baz(@TestAnnotation test:Int):Int{
        return (@TestAnnotation 1)
    }
}

大多数情况下@标识符是可选的 (就是可带可不带)。只有在注解表达式或本地生命中才必须:

可以注解构造函数

@TestAnnotation constructor(){
      
   }

也可以注解属性访问者

也可以注解访问者属性
@TestAnnotation
class TestAnnotationChild {
   @TestAnnotation constructor(){
       
   }
    var x:String?=null
        @TestAnnotation set
}

构造函数

注解可以有带参数的构造函数

//注解构造函数
annotation class special(val why:String)
@special("example") class TestAnnotationCon{
}

Lambdas

注解也可以用在lambda中,这将会应用到lambda生成的invoke()方法,这对Quasar框架很有用,在这个框架中注解被用来并发控制

//注解在lambda表达式中
annotation class Suspenable
val annotationLambda=@Suspenable{
    println("lambda has annotation")
}

Java注解

java注解在kotlin中是完全兼容的:

// Java
public @interface Ann {
    int value();
}
// Kotlin
fun foo(ann: Ann) {
    val i = ann.value
}
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值