什么是注解 (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();
}

总结

注入对象的步骤:

  1. 得到想要注入的对象属性
  2. 通过属性得到注解的信息
  3. 通过属性的写方法将注解的信息注入到对象上
  4. 最后将对象赋给类。

注解其实就是两个作用:

  1. 让编译器检查代码
  2. 将数据注入到方法、成员变量、类上

如果没有响应注解内容,注解可以说是没有实用价值。让注解真正发挥作用,主要就在于注解处理方法。

JDK 常用注解

  1. 基本 Annotation 在 lang 包下,用于常用于标记该方法,抑制编译器警告等
  2. 元 Annotaion 在 annotaion 包下,常用于修饰其他的 Annotation 定义

发表评论