一、三种注解
1.@Override:限定重写父类的方法,该注解只能用于方法
2.@Deprecated:用于便是某个程序元素(类,方法等)已过时
3.@SuppressWarnings:抑制编译器警告
@SuppressWarnings("rawtypes") //提示未加泛型
List list = new ArrayList();
@Override
public String toString() {
return "Person [name=" + name + ", age=" + age + "]";
}
@Deprecated
public void show() {
System.out.println("这个方法可能已经过时,尽量少使用哦!");
}
二、如何自定义一个注解
可参照@SuppressWarnings进行创建:
@Target({TYPE, FIELD, METHOD, PARAMETER, CONSTRUCTOR, LOCAL_VARIABLE})
@Retention(RetentionPolicy.SOURCE)
public @interface MyAnnotion {
//在SuppressWarnings中定义了一个数组,但是在此仅仅是定义了一个;
String value() default "Hello";
}
三、元注解
元注解问题:
①target:用于修饰Annotion定义,用于指定被修饰的Annotion能用于用于修饰那些程序元素,@Target也包含一个名为value的成 员变量
②Retention:只能用于修饰一个Annotion定义,用于指定该Annotion可以保留多长时间, @Rentention,@Rention包含一个 RetentionPolicy类型的成员变量,使用@Retention时必须为该value成员变量指定值。
1)RetentionPolicy.SOURE:编译器直接丢弃这种策略的注释---------编译时不考虑
2)RetentionPplicy.CLASS:编译器将把注释记录到CLASS文件中,当运行java程序时,JVM不会保留注解。这是默 认值---------编译保存考虑,运行不考虑
3)RetionPolicy.RUNTIME:编译器将把注释记录在class文件中,当运行java程序时,JVM会保留注释,程序就可以通 过反射获取改注释------编译保留考 虑,运行考虑