什么是注解 (Annotation)
注解其实就是代码中的特殊标记,这些标记可以在编译、类加载、运行时被读取,并执行相对应的处理。
为什么要用注解
注解可以给类、方法上注入信息。
常见注解
在java.lang
包下存在着5个基本的Annotation,其中有2个Annotation我们是非常常见的了。
@Overried
@Overried是告诉编译器要检查该方法是实现父类的,可以帮我们避免一些低级的错误。
比如当我们写了@Overried之后,我们在实现equals()方法的时候,把euqals()打错了,那么编译器就会发现该方法并不是实现父类的,于是就会给予错误。
@Deprecated
该注解也非常常见,Java在设计的时候,可能觉得某些方法设计得不好,为了兼容以前的程序,是不能直接把它抛弃的,于是就设置它为过时。
自定义注解
我们自定义的注解是可以带成员变量的,定义带成员变量的注解叫做元数据Annotation
public @interface MyAnnotation {
String username();
}
使用注解
// 注解拥有什么属性,在修饰的时候就要给出相对应的值
@MyAnnotation(username = "kangfenmao")
public void add() {}
读取注解
@MyAnnotation(username = "kangfenmao")
public void add() {
MyAnnotation annotation = method.getAnnotation(MyAnnotation.class);
String username = annotation.username();
}
总结
注入对象的步骤:
- 得到想要注入的对象属性
- 通过属性得到注解的信息
- 通过属性的写方法将注解的信息注入到对象上
- 最后将对象赋给类。
注解其实就是两个作用:
- 让编译器检查代码
- 将数据注入到方法、成员变量、类上
如果没有响应注解内容,注解可以说是没有实用价值。让注解真正发挥作用,主要就在于注解处理方法。
JDK 常用注解
- 基本 Annotation 在 lang 包下,用于常用于标记该方法,抑制编译器警告等
- 元 Annotaion 在 annotaion 包下,常用于修饰其他的 Annotation 定义