Kotlin教程

【九月打卡】第4天 一课掌握Kotlin 突破开发语言瓶颈

本文主要是介绍【九月打卡】第4天 一课掌握Kotlin 突破开发语言瓶颈,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

课程信息

课程名称: 一课掌握Kotlin 突破开发语言瓶颈
课程章节: Kotlin注解(10-1,10-2)
课程讲师: bennyhuo

课程内容

注解的基本概念

  • 注解是对程序的附加信息说明
  • 注解可以对类、函数、函数参数、属性等做标注
  • 注解的信息可用于源码级、编译器、运行时

注解的定义

// 通过annotation标记为注解类
annotation class Api

限定标注对象

通过内置的Target注解限定注解的作用对象

// 限定作用于类
@Target(AnnotationTarget.CLASS)
annotation class Api

指定作用时机

通过内置的Retention注解可以指定注解的作用时机

// 作用于运行时
@Retention(AnnotationRetention.RUNTIME)
@Target(AnnotationTarget.CLASS)
annotation class Api

作用时机有三种

  • SOURCE 源码期
  • BINARY 编译期
  • RUNTIME 运行时

RUNTIME包含SOURCE和BINARY,BINARY包含SOURCE

注解的参数

@Retention(AnnotationRetention.RUNTIME)
@Target(AnnotationTarget.CLASS)
annotation class Api(val url: String)

注解参数支持以下类型及其数组

  • 基本类型
  • KClass
  • 枚举
  • 其他注解

注解 vs 注释

注解(Annotations)

特定语法现象,参与编译

注释(Comments)

只存在于源码中,提升可读性

内置注解

  • kotlin.annotation.* 用于标注注解的注解
    图片描述

  • kotlin.* 标准库的一些通用通途的注解

    • Metadata – Kotlin反射的信息通过 该注解附带在元素上
    • UnsafeVariance – 泛型用来破除型变限制
    • Suppress – 用来去除编译器警告,警告类型作为参数传入
    • 。。。
  • kotlin.jvm.* 用于与Java虚拟机交互的注解

    • JvmField – 生成Java Field
    • JvmName – 指定类、函数等生成的Jvm名字
    • JvmOverloads – 函数默认生成函数重载
    • JvmStatic – 生成静态成员
    • Synchronized – 标记函数为同步函数
    • Throws – 标记函数抛出的异常类型
    • Volatile – 生成volatile的Field

学习总结

通过本章学习,掌握Kotlin注解的基础知识。
对于Java与Kotlin混合编程来说,kotlin.jvm.*下的注解是必须了解的内容。

这篇关于【九月打卡】第4天 一课掌握Kotlin 突破开发语言瓶颈的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!