个人网站备案可以做公司网站用重庆网站设计最加科技
注解
注解英文为Annotation
-  
Annotation是JDK5引入的新的技术
 -  
Annotation的作用:
- 不是程序本身,可以对程序做出解释
 - 可以被其他程序(比如编译器)读取。
 
 -  
Annotation的格式:
注解是以
@注解名在代码中存在的,还可以添加一些参数值,例如:@SuppressWarnings(value="unchecked") -  
Annotation在那里使用
可以附加在package、class、method、field等上面,相当于给他们添加了额外的辅助信息,我们可以通过反射机制编程实现对这些元数据的访问。
 
1.常用注解
(1)@Override 表示重写
(2)@Deprecated表示不推荐使用,存在更好方法,之后可以回淘汰。
(3)@SuppressWarnings表示镇压警告。
2.元注解
元注解的作用就是负责注解其他注解,Java定义了4个标准的meta-annotation类型,他们可以被用来提供对其他annotation类型作说明。
这些注解和他们所支持类在java.lang.annotation包中可以找到
-  
(1)@Target
用来描述注解的使用范围(即:被描述的注解可以用在说明地方)
 -  
(2)@Retention
表示在什么级别保存该注释信息,用来描述注解的生命周期
SOURCE<CLASS<RUNRIME -  
(3)@Document
说明该注解将被包含在javadoc中
 -  
(4)@Inherited
说明子类可以继承父类中的注解
 
2.1@Target
@Target的参数是一个枚举类型的数组,ElementType。
public enum ElementType {TYPE,			//类、接口(包括注释类型)或枚举声明FIELD,			//字段声明(包括enum常量)METHOD,			//方法声明PARAMETER,		//参数CONSTRUCTOR,	//构造函数声明LOCAL_VARIABLE,	//局部变量说明ANNOTATION_TYPE,//注释类型声明PACKAGE,		//包说明TYPE_PARAMETER,	//类型参数声明TYPE_USE		//类型使用
}
 
2.2 @Retention
表示在什么级别保存该注释信息,用来描述注解的生命周期,它的参数也是一个枚举类型RetentionPolicy
public enum RetentionPolicy {//注释将被编译器丢弃。SOURCE,//注释将由编译器记录在类文件中,JVM不会保留(默认)CLASS,// 运行时(因此它们可以反射式地读取)RUNTIME
}
 
3.自定义注解
-  
@interface 用来声明一个注解,格式:
public @interface 注解名{ 定义内容 } -  
其中每一个方法实际上是声明了一个配置参数
 -  
方法的名称就是参数的名称
 -  
返回值类型就是参数的类型(
返回值只能是基本类型、Class、String、enum) -  
可以通过
default来声明参数的默认值 -  
如果只用一个参数成员,一般参数名称为
value -  
注解元素必须有值,我们定义注解元素时,经常使用空字符串,0作为默认值。
 
@Target({ElementType.METHOD, ElementType.TYPE, ElementType.FIELD, ElementType.PARAMETER})
@Retention(RetentionPolicy.RUNTIME)
@Documented //生成到javadoc中
@Inherited  // 子类可以继承
public @interface MyAnnotation {String[] value() default {};int id() default 0;
}
