推荐阅读:
- 我的CSDN
- 我的博客园
- QQ群:704621321
- 我的个人博客
一。全面解析Java注解
1.为什么学习Java注解?学习Java注解有何好处?学完能做什么?
(1)能·读懂别人写的代码,特别是框架相关的代码
(2)让编程更加简洁,代码更加清晰
(3)让别人高看一眼
2.Java注解概念
Java提供了一种源程序中的元素任何信息和任何元数据的途径和方法
3.Java中的常见注解
(1)JDK自带注解
@Override
首先创建一个Person接口,包含三个方法,如下:
package com.example.demo;
public interface Person {
public String name();
public int age();
public int uid();
}
创建一个MyInfo类,并添加实现方法,添加实现方法的快捷键为Alt+Enter,如下图:
package com.example.demo;
public class My implements Person {
@Override
public String name() {
return null;
}
@Override
public int age() {
return 0;
}
@Override
public int uid() {
return 0;
}
}
此时会发现自动在每个方法上面自动生成了@Override注解,该注解的作用是告诉编辑器该方法覆盖掉该类实现的接口中的方法
@Deprecated
当某个方法不再需要被使用时使用@Deprecated,代表该方法过时。之所以不删掉方法而使用注解的方式是避免以前某些地方使用该方法造成报错。使用过时了的方法,方法名上会有一条删除线,不会有错误提示但是会有警告。
如果非得使用过时的方法,可使用@Suppvisewarnings。
@Suppvisewarnings
@Suppvisewarnings使用方法如下:
package com.example.demo;
public class Test {
@SuppressWarnings("depreaction")
public void uid(){
Person m=new MyInfo();
m.uid();
}
}
(2)常见第三方注解
Autowried:生成对应的实例
4.注解分类
除了以上的注解外,还有一种特殊的注解,即元注解。元注解:注解的注解。
5.自定义注解
总结起来共6点要求:
对5的使用:当只有一个成员,成员名必须为value,则使用注解时,应按照一下格式:
@注解名(对应成员的值)
举例:
@Description("happy")
对6的使用:没有成员,则使用注解时,应按照一下格式:
@注解名
举例:
@Description
解析注解
概念:通过反射获取类,函数或成员上的运行时注解信息,从而实现动态控制程序运行的逻辑。
解析注解的步骤:
(1)使用类加载器加载类
(2)找到类上面的注解
(3)拿到注解实例
(4)找到方法上的注解
操作:
(1)创建自定义注解Desription
(2)在com.ann.test路径下的Child类中使用(1)中的注解
(3)拿到注解实例
运行输出:I am class annotation
(4)找到方法上的注解
运行输出:I am method annotation
注意:子类注解继承只能够作用于类,继承之后只会继承类上面的注解。
举例:
(1)Person类上有注解,类中的方法也有注解
(2)Child类继承自Person类
(3)使用上述的4步骤解析Child类中的注解,输出为:I am interface