基本内置注释(JDK5.0自带的)
Override 注释能实现编译时检查,你可以为你的方法添加该注释,以声明该方法是用于覆盖父类中的方法。如果该方法不是覆盖父类的方法,将会在编译时报错。例如我们为某类重写toString() 方法却写成了tostring() ,并且我们为该方法添加了@Override 注释,那么编译是无法通过的。
Deprecated 的作用是对不应该在使用的方法添加注释,当编程人员使用这些方法时,将会在编译时显示提示信息,它与javadoc 里的 @deprecated 标记有相同的功能。
SuppressWarnings 与前两个注释有所不同,你需要添加一个参数才能正确使用,这些参数值都是已经定义好了的,我们选择性的使用就好了,参数如下:
unused 没有被访问过的元素,去除警告。
deprecation 使用了过时的类或方法时的警告
unchecked 执行了未检查的转换时的警告,例如当使用集合时没有用泛型 (Generics) 来指定集合保存的类型
fallthrough 当 Switch 程序块直接通往下一种情况而没有 Break 时的警告
path 在类路径、源文件路径等中有不存在的路径时的警告
serial 当在可序列化的类上缺少 serialVersionUID 定义时的警告
finally 任何 finally 子句不能正常完成时的警告
all 关于以上所有情况的警告
1、java.lang.SuppressWarnings注解主要是用来去除警告信息的。
2、SuppressWarnings注解中有一个变量,变量的名字是value,变量的数据类型是String[]
3、在java语法中规定:注解中一旦有变量,在使用该注解的时候必须给变量指定值,不指定值,则编译无法通过。
4、给注解的变量指定值的语法:@注解的名字(变量名1=变量值1,变量名2=变量值2....)
5、注解中的变量名如果是“value”,则变量名可以省略。
6、注解中变量值如果是一个数组,并且数组中只有一个元素“{}”可以省略
自定义注释类型
自定义的注解类型中添加变量。
*
*1、注解类型中添加变量,变量的数据类型只能是:String、基本数据类型、枚举类型、数组、Class类型其它类型不允许使用。
*
*2、注解中一旦有变量,在使用该注解的时候必须给变量指定值。语法:@注解类型名(变量名=值,.....)
*
* 3、如何指定变量,语法:变量的类型 变量名();
public@interfaceNewAnnotation {
Stringtitle();
Stringcontent();
intage();
}
@Annotation04(
title="问候",
content="你最近好吗?",
age=23)
publicvoid sayHello(){。。。}
java.lang.annotation.Target |
使用范围 |
java.lang.annotation.Retention |
注解类型 |
java.lang.annotation.RetentionPolicy |
枚举类型 |
* Retention注解主要是用来标注“其它注解”的,主要是用来设定
* 注解的保持性策略。
*
* Retention和RentionPolicy联合使用。
* RentionPolicy主要是用来指定保持性策略,被保留到什么时候!
*
*SOURCE 只保留在java源文件中。
* CLASS 默认的行为,被保留在class文件中,但是不能被反射机制读取。
*RUNTIME 被保留在class文件中,可以被反射机制读取。
Inherited |
注解标注的注解支持继承机制。 |
@Documented |
|
Classc =Class.forName("com.bjpowernode.javase.chapter11.reflect.JDBCUtil");
MethodgetConnectionMethod = c.getDeclaredMethod("getConnection");
/*
* 判断getConnection方法上是否有DBAnnotation注解。
*/
if(getConnectionMethod.isAnnotationPresent(DBAnnotation.class)){
DBAnnotationdbAnnotation =(DBAnnotation)getConnectionMethod.getAnnotation(DBAnnotation.class);
Stringurl = dbAnnotation.url();
Stringuser = dbAnnotation.user();
Stringpassword = dbAnnotation.password();
Stringdriver = dbAnnotation.driver();