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