注解(Annotation)
从JDK5开始,Java增加对元数据的支持,也就是注解,注解与注释是有一定区别的,可以把注解理解为代码里的特殊标记,这些标记可以被编译器读取,并执行相应的处理
。
开发人员通过注解可以在不改变原有代码和逻辑的情况下在源代码中嵌入补充信息。
1.内置注解
内置注解用来为编译器提供指令。
三个内置注解:
@Override
:重写注解@Deprecated
:不推荐使用注解,可以使用但是又风险或者有更好的方式@SuppressWarnings
:“镇压”警告注解
2.元注解
元注解的作用解释注解其他注解
四个元注解:
@Target
:用于描述注解的使用范围(类、方法、属性等)@Retention
:用于表示需要在什么级别保存注解信息,用于描述注解的声明周期,(SOURCE<CLASS<RUNTIME)@Document
:说明该注解将被包含在javadoc中@Inherited
:说明子类可以继承父类中的该注解
3.自定义注解
public class TestAnnotation {
@MyAnnotation(schools = {"清华","北大"})
public void test() {
}
@MyAnnotation2("你好")
public void test2() {
}
}
//自定义注解
//注解可以使用在类上和方法上
@Target({ElementType.TYPE,ElementType.METHOD})
//运行时保留注解
@Retention(RetentionPolicy.RUNTIME)
@Documented
@Inherited
@interface MyAnnotation{
//注解的参数:类型+参数名()[default 默认值];
String name() default "张三";
int age() default 18;
String[] schools();
}
@Target(ElementType.METHOD)
@Retention(RetentionPolicy.RUNTIME)
@interface MyAnnotation2{
String value();
}