注解编程

注解

注解是JDK 1.5之后引入的一个语言特性,一般用于对类,方法,属性的修饰。主要的目的在于简化java中的配置,用注解代替配置。 下面是几个Java底层内置的几个注解

  • @Override: 只适用于方法,表示重写父类中的方法

  • @Deprecated: 表示某各类或方法已过时

  • @SuppressWarnings: 抑制编译器的警告

元注解

所谓元注解就是用于修饰注解的注解 @Target:指定注解使用的位置,@Target 中有一个 ElementType 数组,因此被 @Target 注解修饰的注解可以在多个位置上使用。下面是 ElementType 枚举中的一些属性(只列举一些常用的属性)

  • TYPE:能在类、接口(包含注解类型)和枚举类型上使用

  • FIELD:只能在属性上使用

  • METHOD:只能在方法上使用

@Retention:用于表示该注解可以保留的作用域,@Retention 注解包含一个 RetentionPolicy 属性,通过这个属性来设置注解的保留域。RetentionPolicy 是一个枚举,其中有 3 个属性,如下

  • SOURCE:只在源代码中显示,在编译成 .class 文件的时候会被丢弃

  • CLASS:编译器会把注解记录在 .class 文件中,当程序运行时,虚拟机不会保留该注解

  • RUNTIME:当程序运行时,也会被保留,因此可以通过反射技术获取该类型注解中的一些信息

@Documented:被该注解修饰的类可以使用 javadoc 工具生成文档,这里就不演示了

@Inherited:如果子类继承了被 Inherited 修饰的注解,则子类也自动拥有父类中的注解

举个栗子

上面是Deprecated注解的实现,几个元注解的实际含义如下:

  • 表示可以被生成文档

  • 在程序运行时也会被保留

  • 可以使用在构造器,属性,方法,类或接口,包上等

注解编程

注解编程其实就是使用注解的特性进行编程的一个技巧,主要包含两个核心点:注解的定义,反射判断 注解的定义就是定义自己需要使用的注解 反射判断表示在适当的实际反射获取注解的值进行相应逻辑的处理

举个栗子

写一个通过注解自动生成SQL查询语句的例子

结果

结果

Last updated

Was this helpful?