注解
JAVA中对程序做出解释,可以被程序读取,附加在package、class、method等上面
如@override告诉程序此方法是重写的方法,限制了方法名和参数必须和父类一致
内置注解
@SuppressWarnings("ALL") //镇压警告
public class Neizhi {
public static void main(String a[]){
System.out.println(new Neizhi().toString());
test();
}
@Override
public String toString(){
return "Override";
}
@Deprecated //表示不推荐使用,在新版本被废弃,但是还是可以用
public static void test(){
System.out.println("Deprecated");
}
}
元注解
负责解释其他注解的注解
import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;
public class Yuan {
@Myannotation
public void test(){
}
}
@Target(value = ElementType.METHOD) //Target限制该注解解释的类型,如限制只能解释方法
@Retention(value = RetentionPolicy.RUNTIME) //Retention表示该注解解释的级别,RUNTIME(运行时级别)>CLASS>SOURCE(源码级别)
@interface Myannotation{ //定义注解的方法
}
自定义注解
import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
public class ZiDingYi {
@testanno(age = 18,name = "mak",id = 1,schools = {"杭电"})
public void test(){}
}
@Target({ElementType.TYPE,ElementType.METHOD})
@Retention(RetentionPolicy.RUNTIME)
@interface testanno{
// 自定义的注解中,声明方法=配置参数
// 方法的名称就是参数的名称
String name() default "";
int age() default 0;
int id() default -1;
String[] schools() default {"清华大学","北京大学"};
}
Comments NOTHING