1、可以使得代码更加简洁
2、可以使用自定义注解解决问题(可以让人觉得你很牛逼)
一、java中常见注解(jdk中的注解)
1、@Override
当父类的某个方法被注释,那么子类的相关方法的@Override注解上面就会报错,提示父类其实并
没有这个方法
2、@Deprecated
加在父类的某个方法上,那么父类的引用调用这个方法的时候,则会有一道横线,提示这个 方法已经过期,
这里需要注意的是,子类实例父类引用.父类方法();这种情况调用的是谁的方法呢?分几种情况
①子类 extends 抽象父类 调用的又是父类抽象方法,那么运行的都是子类方法。
②子类 extends 抽象父类 调用的又是父类非抽象方法,如果方法重载了,就运行重载后的子类方法,如果没有,则运行自己的f方法,但是不能运行只有子类具有的方法(也就是说,父类引用只能调用自己 定义过的方法,并优先使用子类方法,子类独有方法不行)。
③
3@Suppvisewarnings(“填入忽略警告的注解”) 比如 @suppvisewarning(“Deprecated”)
二、注解分类
三、自定义 注解
解析注解:通过反射获取类,函数或成员上的运行时注解信息,从而实现动态控制程序运行的逻辑。
1、解析注解:两种方法
①通过反射拿到方法,判断方法上是否存在指定注解
Boolean bb = m.isAnnotationPresent(Annotation1.class);
②通过反射拿到方法,然后拿到该方法上的所有注解,判断这些注解当中是否存在指定注解。
Annotation[] annotation=m.getAnnotations();
for (Annotation a:annotation){
if (a instanceof Annotation1){
System.out.println(((Annotation1)a).zujie());
}
}
2、注解继承
注解的继承只能继承class类的注解(interface不行),并且只能继承类上的注解,方法上的注解不行
四、注解实例