注解作用
- 可以被其他程序读取
- 具有检测他所注解的范围(类 方法 字段)的能力
内置注解
在Se java.lang的包下有3个内置注解
1.@Override
2.@SupressWarnings
3.@Deprecated
元注解 解释其他注解的注解
java.lang.annotation下
.1.@Target 表示作用范围 他的参数可以限制 他所注解的 注解 的作用范围
下面这个函数中的ElementType . 后面的就可以选择注解范围
2.@Retention 用于描述 所注解的 注解的生命周期
比如只能在源码使用 所修饰的注解
只能在类中使用
只能在函数中使用
通常是默认只能在执行期间使用RUNTIME
选择的生命周期都在RetentionPolicy后面
意思是如果你注解了你可以在Runtime中运行那肯定也能在class中运行
如果在class就不能在runtime
3.@Document
4.@Inherited
自定义注解
注解的变量很像方法
String name; 正常定义变量
String name(); 注解定义
感觉是 方法名 参数名();
其实是 参数类型 参数名();
这是我自己写的注解
里面有注解的参数 如果写了参数没设置默认值 你必须要在引用这个注解的时候把参数写上
我现在没有默认name 的值
在引用这个注解的方法上写上了name值不报错了
注解的参数的先后赋值顺序没事
参数只有一个且是value的时候注解里不用参数名=“”
直接默认为value
正常是