java基础--注解

注解

  1. 什么叫做注解?注解->Annotation,JDK5.0引入技术
  2. Annotation 的作用:
  • 并不是程序本身,可以对程序作出解释。
  • 可被其他程序读取(可做信息处理)

内置注解

  1. @Override : 定义在java.lang.Override中,此注释只适用于修辞方法,表示一个方法声明打算重写父类中另一个方法声明。
  2. @Deprecated:定义在java.lang.Deprecated中,此注释用于修辞方法、熟悉、类。表示不鼓励程序员使用这样的元素。
  3. @SuppressWarnings:用来抑制编译时的警告信息。其中包含的参数:
    • deprecation 使用了过时的类或方法的警告
    • unchecked 执行了未检查的转化时的警告,如使用集合时,未指定泛型

元注解(对注解进行进一步解释)

  1. @Target:用于描述注解的使用范围(如包、类、方法等)

    • CONSTRUCTOR:用于描述构造器
    • FIELD:用于描述域
    • LOCAL_VARIABLE:用于描述局部变量
    • METHOD:用于描述方法
    • PACKAGE:用于描述包
    • PARAMETER:用于描述参数
    • TYPE:用于描述类、接口(包括注解类型) 或enum声明
  2. @Retention:表示需要在什么级别保存该注释信息,用于描述注解的生命周期

    • SOURCE:在源文件中有效(即源文件保留)
    • CLASS:在class文件中有效(即class保留)
    • RUNTIME:在运行时有效(即运行时保留)

自定义注解

新建一个Annotation 方法,方法头加元注解,具体如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
@Target(value = ElementType.METHOD)  //该注解只可放在方法前面
@Retention(RetentionPolicy.RUNTIME) //可以通过反射读取到
public @interface Annotation {
//定义参数默认值
String studentName() default "";
int age() default 0;
int id() default -1;
String[] schools() default {};
}

/* 引用该注解*/
@Annotation(age = 18,studentName = "二狗",id = 1008,
schools = {"北京大学","清华大学"})
public void test(){

}