注解
注解(Annotation)
1. 什么是注解
Java注解又称Java标注,是在 JDK5 时引入的新特性,注解(也被称为[元数据])。
Java注解它提供了一种安全的类似注释的机制,用来将任何的信息或元数据(metadata)与程序元素(类、方法、成员变量等)进行关联。
2.内置注解
- @Override 检查方法是否为重写的方法
- @Deprecated 用于表明被修饰的类、类成员或方法过时了,不建议被使用
- @SuppressWarnings 用于关闭对类、方法、成员编译时产生的特定警告
3.元注解
元注解的作用就是负责注解其他注解 , Java定义了4个标准的meta-annotation类型,他们被用来提供
对其他annotation(元注解)类型作说明 。
- @Target:用于描述注解的使用范围(即:被描述的注解可以用在什么地方)
- @ Retention用来定义该注解在哪一个级别可用,在源代码中(SOURCE)、类文件中(CLASS)或者运行时(RUNTIME) 作用域范围:SOURCE < CLASS < RUNTIME
- @Documented:生成文档信息的时候保留注解,对类作辅助说明
- @Inherited:说明子类可以继承父类中的该注解
public class DemoTest {
@MyAnnotation(name = "lzl")
public void test(){
}
}
/**
* 自定义一个元注解,限制只允许在方法和类上使用
*/
//表示注解可以在哪些地方可以使用
@Target(value = {ElementType.METHOD,ElementType.TYPE})
//描述的注解的生命周期,表示我们的注解在什么地方还有效
@Retention(value = RetentionPolicy.RUNTIME)
//表示是否将我么的注解生成在javaDoc中
@Documented
//表示子类是否可以从父类中继承该注解
@Inherited
//@interface 自定义注解的关键字
@interface MyAnnotation{
//注解参数的定义 参数类型 + 参数名称 +()
//如果只有一个注解参数时,建议使用value,外部传参时可以省略value
String name();
//注解参数可以设置默认值,如果有默认值时,外部可以不必传此参数,否则,使用注解时,参数必须传值
int age() default 0;
}