美文网首页
JDK8新注解

JDK8新注解

作者: 牧心musing | 来源:发表于2021-02-27 15:40 被阅读0次

1. 重复注解

重复注解的使用步骤:
1、定义重复的注解容器注解
2、定义一个可以重复的注解
3、配置多个重复的注解
4、解析得到指定的注解

// 3、配置重复注解
@MyTest("a")
@MyTest("b")
@MyTest("c")
public class Demo01 {
    public static void main(String[] args) throws NoSuchMethodException {
        // 4、解析得到指定的注解 类上
        // getAnnotationsByType获取解析重复注解
        MyTest[] annotationsByType = Demo01.class.getAnnotationsByType(MyTest.class);
        for (MyTest myTest : annotationsByType) {
            System.out.println(myTest);
        }

        // 4、解析得到指定的注解 方法上
        MyTest[] tests = Demo01.class.getMethod("test").getAnnotationsByType(MyTest.class);
        for (MyTest test : tests) {
            System.out.println(test);
        }
    }

    @MyTest("fa")
    @MyTest("fb")
    public void test() {
        
    }

}

// 1、定义重复的注解容器注解
@Retention(RetentionPolicy.RUNTIME)
@interface MyTests { // 重复注解容器
    MyTest[] value();
}

// 2、定义一个可以重复的注解
@Retention(RetentionPolicy.RUNTIME)
@Repeatable(MyTests.class)
@interface MyTest {
    String value();
}

2. 类型注解

JDK8为@Target元注解新增了两种类型:TYPE_PARAMETERTYPE_USE

  • TYPE_PARAMETER:表示该注解能写在类型参数的声明语句中,类型参数声明如:<T><T extends Person>
  • TYPE_USE:表示注解可以在任何用到类型的地方使用。
public class Demo02<@TypeParam T> {
    private @NotNull int a = 10;

    public void test(@NotNull String str,@NotNull int num) {

    }

    public <@TypeParam E extends Integer> void test1() {

    }
}

@Target(ElementType.TYPE_PARAMETER)
@interface TypeParam {

}

@Target(ElementType.TYPE_USE)
@interface NotNull {

}

3、小结

通过@Repeatable元注解可以定义可重复注解,TYPE_PARAMETER可以让注解放在泛型上, TYPE_USE可以让注解放在类型的前面。

相关文章

  • JDK8新注解

    1. 重复注解 重复注解的使用步骤:1、定义重复的注解容器注解2、定义一个可以重复的注解3、配置多个重复的注解4、...

  • 深入理解 Java 注解

    深入理解 Java 注解 本文内容基于 JDK8。注解是 JDK5 引入的,后续 JDK 版本扩展了一些内容,本文...

  • JDK8新特性介绍

    JDK8新特性介绍 JDK8新特性:​ 1,Lambda表达式​ 2,新的日期API​ 3,引入Optional​...

  • JDK apt

    jdk8移除了原有的apt工具,转而使用了插入式注解处理API(Pluggable Annotation Proc...

  • JDK8的一种新的读写锁StampedLock

    JDK8的一种新的读写锁StampedLock JDK8新增一种新的读写锁StampedLock。一个最重要的功能...

  • JDK8的新特性——Lambda表达式的奇淫技巧

    前言 JDK8已经发布快4年的时间了,现在来谈它的新特性显得略微的有点“不合时宜”。尽管JDK8已不再“新”,但它...

  • jackson parser LocalDataTime 问题

    jackson parser LocalDataTime 问题 LocalDataTime 是 jdk8 的新特性...

  • 面试

    sql语句 jdk8新特性 lamed 测试单元测试

  • Java 8 新特性

    目前自己的项目已经使用上了jdk8,但是基本上用的还是jdk8之前的语法和规范。略感惭愧。赶紧学习一下jdk8的新...

  • Jdk8 supportted DateUtil

    Jdk8 supportted DateUtil jdk8带来了一些列的改变。新的日期/时间api是最受欢迎的改变...

网友评论

      本文标题:JDK8新注解

      本文链接:https://www.haomeiwen.com/subject/ihmcxltx.html