java8 注解_Java8新特性回顾---注解能力增强

今天回顾在Java8中注解增强的新特性,类型注解和重复注解。

什么是类型注解?

在Java8之前,注解只能用于声明中使用注解,比如定义类的时候、定义方法的时候或者bean中的变量上,但是没法在方法内使用。

在Java8中,注解可以被用到任何使用类型的地方,比如说创建实体(new)、类型转化、implements和throws。这种可以用于类型声明和类型使用的注解,被称为类型注解。Java8 ElementType 源码TYPE_USE ,任意使用类型的地方。

TYPE_PARAMETER,任何声明类型的地方。

类型注解示例如下:

@Target({ElementType.TYPE_USE, ElementType.TYPE_PARAMETER})

public @interface Temp {

}

类型注解的意义?

类型注解是一套可定义拓展的类型检查框架,可以通过类型注解实现非常轻量级的自定义类型检查插件,完全不需要第三方的插件。

什么是重复注解?

重复注解,其实就是同一个注解可以多次使用。

public class Temp {

@Rule(rule = "a")

@Rule(rule = "b")

String value;

}

如何定义可重复注解呢?

代码如下,重复注解的核心是@Repeatable(Rules.class)。

@Target({ElementType.TYPE_USE, ElementType.TYPE_PARAMETER})

@Repeatable(Rules.class)

public @interface Rule {

String rule() default "";

}

@Target({ElementType.TYPE_USE, ElementType.TYPE_PARAMETER})

public @interface Rules {

Rule[] value();

}

使用示例:

public class Temp {

@Rule(rule = "a")

@Rule(rule = "b")

String value;

}

重复注解的意义?

重复注解更多是对过去注解类型写法的一个优化、一个简化。上面示例的实现在Java7中如下:

@Target({ElementType.FIELD})

public @interface Rule {

String rule() default "";

}

@Target({ElementType.FIELD})

public @interface Rules {

Rule[] value();

}

public class Temp {

@Rules({@Rule(rule = "a"), @Rule(rule = "b")})

String value;

}

可以看出这个写法是非常繁琐的。

总结

注解的使用越来越频繁,Java围绕着注解引入的类型检查框架,可以极大的增强了代码检查、代码分析的能力,对于工作效率的提高有非常重要的意义。这个新特性的意义也是非常重大的。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值