注解入门
Annotation的作用Annotation的格式Annotation在哪里使用? 内置注解元注解
注解入门Annotation是从JDK1.5开始引入的技术; Annotation的作用
- 不是程序本身,可以对程序作出解释(这一点和注释comment没什么区别) - 可以被其他程序(如:编译器)读取;Annotation的格式
- 注解是以"@注解名字"在代码中存在的,还可以添加一些参数值,例如: - @SuppressWarnings(value="unchecked") - 重写的注解 @OverrideAnnotation在哪里使用?
- 可以附加在package、class、method、field等上面; - 相当于给他们增加了额外的辅助信息; - 我们可以通过反射机制编程实现对这些元数据的访问;内置注解
@Override
定义在Java.lang.Override中,此注解只适用于修辞手法,表示一个方法声明打算重写父类的同名的方法;@Deprecated
定义在Java.lang.Deprecated中,此注解可以用于修饰方法、属性、类等,表示不鼓励IT人员用这样的元素,通常是因为它过时了或者有更好的方法;@SuppressWarnings
定义在Java.lang.SuppressWarnings中,用来抑制编译时的警告信息;与前两个注解不同的是,该注解需要增加一个参数才能正确使用,并且参数都是定义好的,我们根据需要进行选择性使用即可。@SuppressWarnings("all")@SuppressWarnings("unchecked")@SuppressWarnings("value={"unchecked","deprecation"}") 元注解
元注解的作用就是负责注解其他注解;Java定义了4个标准的meta-annotation类型,它们被用来提供对其他annotation类型做说明。
这些类型可以在java.lang.annotation包中可以找到:
@Target
用来描述注解的适用范围(即被描述的注解可以用在哪些地方);@Retention
表示需要在什么级别保存该注解信息,用于描述注解的生命周期,SOURCE
说明子类可以继承父类的注解 ;
// 测试元注解
public class Test01 {
@MyAnnotation
public void test(){}
}
// 定义一个注解
// Target 表示我们的注解可以用在哪些地方
@Target(value= {ElementType.METHOD,ElementType.FIELD})
// Retention 表示我们的注解,在什么地方有效Runtime>Class>Source
@Retention(value = RetentionPolicy.RUNTIME)
// documented 表示是否将我们的注解生成在Javadoc中
@documented
// Inherited 表示子类可以继承父类的注解
@Inherited
@interface MyAnnotation{}



