什么是注解?
注解是程序的一部分,是给某个注解标注的类或者方法一种特定行为的描述。
如:
@Override 限定方法必须是重写的方法
@Deprecated 标记一个已经过时的方法
@SuppressWarnings(“rawtypes”) 忽略警告
元注解:
用在注解中的注解‘’
如:
@Target 用来定义注解的使用范围
ElementType.ANNOTATION_TYPE 用在注解中
PACKAGE 用在包中
TYPE 用在类型上
CONSTRUCTOR 用在构造方法上
FIELD 用在属性上
METHOD 用在方法上
@Retention 用来定义注解的存在时间
RetentionPolicy.SOURCE 注解只存在于源代码中,编译成class的时候会丢弃注解
RetentionPolicy.CLASS 注解存在于class文件中,在加载到JVM中的时候会丢弃注解
RetentionPolicy.RUNTIME 注解在程序运行中依然存在
@Documented 注解文档化
@@Inherited 是否能被子类自动继承
注解的定义:
public @interface MyAnnotation {
}
注解的基本使用:
1:定义一个注解,通过参数给属性赋值:
定义MyAnnotation注解:
/**
* 自定义一个注解
* 注解 MyAnnotation
*/
@Target({
ElementType.METHOD,ElementType.FIELD})
@Retention(RetentionPolicy.RUNTIME)
@Documented
@Inherited
public @interface MyAnnotation {
String value();
}
在MyAnnotation注解中就用到了四种元注解。
然后再创建一个Teacher类:
public class Teacher {
@MyAnnotation("TOM")
private String name;
@Override
public String toString() {
return "Teacher{" +
"name='" + name + '\'' +
'}';
}
}
在注解当中输入参数来给Teacher类中的name赋值。
还需要一个Annotationutil类来通过反射的方式将注解中的值设置给属性,
import java.lang.reflect.Field;
public