一.什么是注解Annotation
- 含义:从JDK5开始,Java增加对元数据的支持,也就是注解,注解与注释是有一定区别的,可以把注解理解为代码里的特殊标记,这些标记可以在编译,类加载,运行时被读取,并执行相应的处理。通过注解开发人员可以在不改变原有代码和逻辑的情况下在源代码中嵌入补充信息。
- 格式:“@注释名”,并且可以添加参数
- 使用:可以附加在package,class,method,field上面。
二.内置注解
一共7个,3 个在 java.lang 中,剩下 4 个在 java.lang.annotation 中。
作用在代码的注解:
- @Override:适用于修辞方法,表示一个方法要重写超类的一个方法的声明。
- @Deprecated:表示不鼓励使用这样的方法,属性或类,用于标记过时的方法。
- @SuppressWarnings:用于抑制编译时的警告信息。
作用在注解的注解(元注解):
- @Target:表示注解适用的类型范围。
- @Retention:表示需要什么级别保留该注解(保留策略)。
- @Documented:标记这些注解是否包含在用户文档中。
- @Inherited:表示子类可继承父类中的该注解。
三.自定义注解
使用@interface自定义注解,public @interface 注解名{内容}
注解的方法其实是声明的参数,返回值类型为参数的类型;可以使用default声明参数的默认值。如果只有一个参数,参数名为value,在使用该注解时可以省略“value=”。
public class Zhujie1 {
@MyAnnotation(name = "jack")
public void func(){
System.out.println("func");
}
public static void main(String[] args) {
new Zhujie1().func();
}
}
@Inherited
@Documented
@Target(value = ElementType.METHOD)
@Retention(value = RetentionPolicy.RUNTIME)
@interface MyAnnotation{
String name();
int id() default 0;
}