首页 > 其他 > 详细

注解的使用场景

时间:2021-03-17 00:23:38      阅读:33      评论:0      收藏:0      [点我收藏+]
  • 提供信息给编译器:编译器可以利用注解来处理一些,比如一些警告信息、错误等
  • 编译阶段时处理:利用注解信息来生成一些代码,在kotlin生成代码非常常见,一些内置的注解为了与java API的互操作性,往往借助注解在编译阶段生成一些额外的代码
  • 运行时处理:某些注解可以在程序运行时,通过反射机制获取注解信息来处理一些程序逻辑
public enum class Method{
    GET,
    POST
}
@Target(AnnotationTarget.CLASS)
@Retention(AnnotationRetention.RUNTIME)
annotation class HttpMethod(val method:Method)

interface Api{
    val name:String
    val version:String
    get() = "1.0"

}

//class ApiGetArticle(override val name: String) :Api{}
@HttpMethod(Method.POST)
class ApiGetArticle:Api{
    override val name: String
        get() = "/api.articles"
}

fun fire(api: Api){
    //获取所有注解
    val annotations = api.javaClass.annotations
    val method = annotations.find { it is HttpMethod } as? HttpMethod
    println("通过注解得知该接口需要通过:${method?.method}请求")
}

fun main(){
    fire(ApiGetArticle())
}

 

注解的使用场景

原文:https://www.cnblogs.com/endian11/p/14546180.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!