注解:相当于一种标记,在程序中加了注解就等于为程序打上了某种标记,标记可以加在包、类、方法、成员变量、局部变量等上面;@Deprecated //注明当前方法已过时
@SuppressWarnings("某个警告") //注明跳过某个警告 @Override //注明是覆盖父类的方法
注解相当于一个写好的特殊的类,在定义注解时,用@Retention注解可以声明注解的生命周期,@Retention(RetentionPolicy.SOURCE)表示生命周期在java源文件阶段结束;
@Retention(RetentionPolicy.CLASS)表示生命周期到class文件阶段结束;@Retention(RetentionPolicy.RUNTIME)表示生命周期直到运行完之后才结束,也就是内存中的字节码中
都还有该注解;
反射中,类名.class得到的是字节码,也就是内存中的二进制码。
在注解中定义属性的方法如下:
public @interface MyAnnotation{
String color() default "red";//指定了默认值,使用注解时可以不用传递值
String value();//没有默认值,在使用注解时需要传递一个string类型的值
int [] array() default{1,2};
}
使用注解时,若数组属性中只有一个元素,则可省略大括号;如上例中使用注解时可以写成@MyAnnotation (color="blue",value="asd",array=3),注解的返回值可以是基本
数据类型、String、数组、枚举、class、注解;