Java编程思想 第二十章:注解

注解也叫元数据,为我们在代码中添加信息提供了一种形式化的方法,使我们可以在此后的某个时刻很方便的使用这些数据。它与Java代码是独立的,你可以随心所欲的使用注解,前提是你要满足此注解的限制条件。
注解的语法比较简单,除了@符号的使用之外,它基本与Java固有的语法一致。Java SE5内置了三种,定义在java.lang中的注解:

  • @Override 表示当前的方法定义将覆盖超类中的方法。如果你不小心拼写错误,或者方法签名对不上覆盖的方法,编译器救护发出错误提示。
  • @Deprecated 如果程序员使用了注解为它的元素,那么编译器就会发出警告信息。
  • @SuppressWarnings 关闭不当的编译器警告。
    还有四个元注解,元注解专职负责注解其他的注解。在jdk8中,@Target新加了ElementType.TYPE_USE 和ElementType.TYPE_PARAMETER。
    元注解

定义注解

在注解中,一般都会包含一些元素以表示某些值,没有元素的注解称为标记注解,例如下面的Test注解。

@Target({ElementType.METHOD, ElementType.TYPE})
@Retention(RetentionPolicy.RUNTIME)
public @interface Test {}

如果含有某些元素,你可以默认该值是什么(但不能是null),如果没有默认值的话,则在使用该注解的时候需要给该属性赋值,元素类型只能是基本数据类型和对应的数组以及注解,下面的代码中由于没有指定array的默认值,所以当你使用该注解的时候必须要给array赋值。

@Target(ElementType.FIELD)
@Retention(RetentionPolicy.RUNTIME)
@interface Constraints {
    boolean primaryKey() default false;
    String name() default "";
    int unique() default 0;
    Test test() default @Test;
    int[] array();
}

读取注解的工具是通过反射和getAnnotation来实现的,另外注解是不支持继承的。Java5中是有apt工具的,但是在Java8中,就移除了。Java8以后不再默认包含APT了,并且相关的资源都被移除了比如Mirror相关类,取而代之的是Pluggable Annotation Processing API。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值