JDK8-重复注解与类型注解(十一)

来源:互联网 发布:2017淘宝热销产品 编辑:程序博客网 时间:2024/06/15 12:13
package cn.wcj.jdk8.lambda.test;import static java.lang.annotation.ElementType.CONSTRUCTOR;import static java.lang.annotation.ElementType.FIELD;import static java.lang.annotation.ElementType.LOCAL_VARIABLE;import static java.lang.annotation.ElementType.METHOD;import static java.lang.annotation.ElementType.TYPE;import java.lang.annotation.ElementType;import java.lang.annotation.Repeatable;import java.lang.annotation.Retention;import java.lang.annotation.RetentionPolicy;import java.lang.annotation.Target;@Repeatable(MyAnnos.class)@Target({TYPE, FIELD, METHOD,CONSTRUCTOR, LOCAL_VARIABLE,ElementType.PARAMETER})@Retention(RetentionPolicy.RUNTIME)public @interface MyAnno {    String value()    ;}
package cn.wcj.jdk8.lambda.test;import static java.lang.annotation.ElementType.CONSTRUCTOR;import static java.lang.annotation.ElementType.FIELD;import static java.lang.annotation.ElementType.LOCAL_VARIABLE;import static java.lang.annotation.ElementType.METHOD;import static java.lang.annotation.ElementType.PARAMETER;import static java.lang.annotation.ElementType.TYPE;import java.lang.annotation.Retention;import java.lang.annotation.RetentionPolicy;import java.lang.annotation.Target;@Target({TYPE, FIELD, METHOD, PARAMETER, CONSTRUCTOR, LOCAL_VARIABLE})@Retention(RetentionPolicy.RUNTIME)public @interface MyAnnos {    MyAnno[] value()   ;}
package cn.wcj.jdk8.lambda.test;import java.lang.reflect.Method;import java.util.Arrays;import org.junit.Test;/** * * <p>Title:AnnoTest </p>* <p>Description:JDK8-重复注解与类型注解 </p>* <p>Company:Software College </p> * @author SuccessKey(WangCJ)* @date 2017年6月21日 下午2:49:19 */public class AnnoTest {    //使用类型注解可以解决检查约束的工作    private /*@NonNull*/ Object obj ;    @Test    public void test1() throws Exception{        Class<AnnoTest> clazz=AnnoTest.class ;        Method method = clazz.getMethod("doXXX");        MyAnno[] myAnnos = method.getAnnotationsByType(MyAnno.class);        Arrays.stream(myAnnos)               .map(MyAnno::value)               .forEach(System.out::println);    }    @MyAnno("Washing")    @MyAnno("GoToBed")    public void doXXX() {    }}
阅读全文
1 0
原创粉丝点击