1. 什么是注解?
注解就是给某个方法或属性标注的一种特定行为的描述。
注解的语法:
public @interface MyAnnotation {
}
要注意的是它不是接口,只是长得相似。它在前面加了一个@符号。
2.有什么作用:
注解相当于一种标记,开发工具包和其他程序可以用反射来了解你的类以及各种元素上有何种标记,来完成相应的任务。
@Override
public String toString() {
}
如上所示就是给方法加了注解。
3.注解的定义:
元注解:元注解的作用就是负责注解其他注解,也是最特殊的一种,因为它可以给注解加注解。元注解有五种分别是@Retention、@Documented、@Target、@Inherited、@Repeatable
1.@Retention: 用来定义注解的存在时间:
RetentionPolicy.SOURCE :注解只存在于源代码中,编译成class的时候会丢弃注解
RetentionPolicy.CLASS :注解存在于class文件中,在加载到JVM中的时候会丢弃注解
RetentionPolicy.RUNTIME :注解在程序运行中依然存在
2.@Documented: 注解文档化,是和文档有关的,
3.@Target:用来定义注解的使用范围:
ElementType.ANNOTATION_TYPE : 用在注解中
PACKAGE : 用在包中
TYPE : 用在类型上
CONSTRUCTOR : 用在构造方法上
FIELD : 用在属性上
METHOD : 用在方法上
4.@Inherited:是否能被子类自动继承。
5.@Repeatable:表示可以重复。
4.注解的基本使用:
1:定义一个注解,通过参数给属性赋值:
定义MyAnnotation注解:
/**
* 自定义一个注解
* 注解 MyAnnotation
*/
@Target({
ElementType.METHOD,ElementType.FIELD})
@Retention(RetentionPolicy.RUNTIME)
@Documented
@Inherited
public @interface MyAnnotation {
String value();
}
在MyAnnotation注解中就用到了四种元注解。
然后再创建一个Teacher类:
public class Teacher {
@MyAnnotation("王成")
private String name;
@Override
public String toString() {
return "Teacher{" +
"name='" + name + '\'' +