全面解析Java注解
概念
- Java提供了一种原程序中的元素关联任何信息和任何元数据的途径和方法
Java中的常见注解
- JDK自带注解(编译时注解)
- @Override
- 覆盖父类的方法,此标签表示父类肯定有相应的方法
- @Deprecated
- 已过时的方法
- @SuppviseWarings
- @SuppviseWarings("deprecation")
- 忽略已过时警告的注解
- @Override
常见第三方注解
-
注解的分类
- 按照运行机制分为
- 源码注解
- 注解只在源码中存在,编译成.class文件就不存在了
- 编译时注解
- 注解在源码和.class文件中都存在
- 运行时注解
- 在运行阶段还起作用,甚至会影响运行逻辑的注解
- 源码注解
- 按照来源分
- 来自JDK的注解
- 来自第三方的注解
- 我们自己定义的注解
- 元注解(注解的注解)
自定义注解
- 语法要求
- 成员类型是受限的,合法的类型包括原始类型及String,Class,Annotation,Enumeration
- 如果注解只有一个成员,则成员必须取名为value(),在使用时可以忽略成员名和赋值号(=)
- 注解类可以没有成员,没有成员的注解成为标志注解
解析注解
- 概念:通过反射获取类、函数或成员上的运行时注解信息,从而实现动态控制程序运行的逻辑。
注解的总结
- 作用范围:包,类,字段,方法,方法的参数,局部变量
- 生命周期:源文件SOURCE,编译CLASS,运行RUNTIME