Java8重复注解与类型注解
来源:互联网 发布:手机摄影师调色软件 编辑:程序博客网 时间:2024/06/06 16:30
Java8对注解处理提供了两点改进:可重复的注解及可用于类型的注解。
一、重复注解
package com.expgiga.Java8;import java.lang.annotation.Repeatable;import java.lang.annotation.Retention;import java.lang.annotation.RetentionPolicy;import java.lang.annotation.Target;import static java.lang.annotation.ElementType.*;import static java.lang.annotation.ElementType.CONSTRUCTOR;import static java.lang.annotation.ElementType.LOCAL_VARIABLE;/** * 自定义注解 */@Repeatable(MyAnnotations.class)@Target({TYPE, FIELD, METHOD, PARAMETER, CONSTRUCTOR, LOCAL_VARIABLE})@Retention(RetentionPolicy.RUNTIME)public @interface MyAnnotation { String value() default "expgiga";}
package com.expgiga.Java8;import java.lang.annotation.Retention;import java.lang.annotation.RetentionPolicy;import java.lang.annotation.Target;import static java.lang.annotation.ElementType.*;import static java.lang.annotation.ElementType.CONSTRUCTOR;import static java.lang.annotation.ElementType.LOCAL_VARIABLE;/** * 注解容器 */@Target({TYPE, FIELD, METHOD, PARAMETER, CONSTRUCTOR, LOCAL_VARIABLE})@Retention(RetentionPolicy.RUNTIME)public @interface MyAnnotations { MyAnnotation[] value();}
package com.expgiga.Java8;import java.lang.reflect.Method;/** * Java8重复注解与类型注解 */public class TestAnnotation { public static void main(String[] args) throws NoSuchMethodException { Class<TestAnnotation> clazz = TestAnnotation.class; Method m1 = clazz.getMethod("show"); MyAnnotation[] mas = m1.getAnnotationsByType(MyAnnotation.class); for (MyAnnotation myAnnotation : mas) { System.out.println(myAnnotation.value()); } } @MyAnnotation("Hello") @MyAnnotation("World") public void show() { }}
二、类型注解
package com.expgiga.Java8;import java.lang.annotation.*;import static java.lang.annotation.ElementType.*;import static java.lang.annotation.ElementType.CONSTRUCTOR;import static java.lang.annotation.ElementType.LOCAL_VARIABLE;/** * 自定义注解 */@Repeatable(MyAnnotations.class)@Target({TYPE, FIELD, METHOD, PARAMETER, CONSTRUCTOR, LOCAL_VARIABLE, TYPE_PARAMETER})@Retention(RetentionPolicy.RUNTIME)public @interface MyAnnotation { String value() default "expgiga";}
package com.expgiga.Java8;import java.lang.reflect.Method;/** * Java8重复注解与类型注解 */public class TestAnnotation { //checker framework private /*@NotNull*/ Object obj = null; public static void main(String[] args) throws NoSuchMethodException { Class<TestAnnotation> clazz = TestAnnotation.class; Method m1 = clazz.getMethod("show"); MyAnnotation[] mas = m1.getAnnotationsByType(MyAnnotation.class); for (MyAnnotation myAnnotation : mas) { System.out.println(myAnnotation.value()); } } @MyAnnotation("Hello") @MyAnnotation("World") public void show(@MyAnnotation("abc") String str) { }}
阅读全文
0 0
- Java8重复注解与类型注解
- 重复注解与类型注解
- Java8新增的重复注解@Repeatble和类型注解
- JDK8-重复注解与类型注解(十一)
- Java8中的类型注解浅析
- Java8 新特性之四---------重复注解与注解应用拓宽
- 详解Java8特性之重复注解
- JAVA8 创建可重复注解的容器
- Java8学习笔记 — 其它新特性【接口默认方法(静态方法)、重复注解、类型注解】
- Java8新特性——可重复注解
- 重复注解
- Java8多重注解示例
- java8 注解学习笔记
- java 注解和 重复注解
- java8 新增的@Repeatable注解
- java8 新增的@Repeatable注解
- Java 8新特性探究(二)类型注解和重复注解
- Java 8 新特性:扩展注解(类型注解和重复注解) ——诺诺"涂鸦"记忆
- 强化练习2:编程实现统计某年某月份的天数
- LCA模版,用倍增的思想
- 51nod 1459 迷宫游戏
- Java超简明入门学习笔记(三)
- 常用网页兼容代码
- Java8重复注解与类型注解
- [编程题] 偶串
- Grafana-基本概念
- 【算法的乐趣】
- C语言 链式栈
- 实现两个int类型变量值的交换,要求不使用中间变量
- 程序员面试-操作系统-作业
- 安卓Notification的setLatestEventInfo is undefined出错不存在的解决
- 杭电acm 1334 求立方