什么是注解
个人理解一句话解释什么是注解:注解就是人和服务器都能看懂的语言(相对比注释,注释只有人能看懂),并通过反射可以拿到注解的任何内容。
Java 注解可以通过反射获取注解内容。在编译器生成类文件时,注解可以被嵌入到字节码中。Java 虚拟机可以保留注解内容,在运行时可以获取到注解内容 。 (编译器生成类文件时将注解读取转换成java类)
注解是JDK1.5版本开始引入的一个特性
内置注解
@Override 重写方法
@Deprecated 不推荐程序员使用 会出现横线
@SuppressWarnings 抑制警告
元注解
元注解是什么? 负责解释其他注解的注解
@Target 注解作用域 (month、type…)
@Retention (runtime>class>source)有效范围 表示注解有效范围
@Documented 表示是有将我们的注解生成在JAVAdoc
中
@Inherited 说明子类可以继承父类中的该注解
自定义注解
@Retention(value = RetentionPolicy.RUNTIME)
@Target({ElementType.TYPE,ElementType.METHOD})
public @interface MyAnnoation {
public String value();
}
- 注解的参数: 参数类型 + 参数名();
- 如果是只有一个值 一般是
value
使用注解时可以省略value - 注解参数类型只能是(Class,String,enum)
- 可以通过default来声明参数的默认值 声明默认值使用注解时可以不用指定该参数值
- 注解元素必须要有值,我们定义注解元素时,经常使用(空字符串,0,-1)作为默认值