北京女护士“菲妥妥”一家真自杀了疑似到湖南自杀,两死一伤!

http://beifang.hebtv.com/shehui/bftt461311.html

package com.example.annotationdemo.repeatable;

import java.lang.annotation.Repeatable;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;

@Retention(RetentionPolicy.RUNTIME)
/**
 * 原始注解
 * 声明可以重复注解,并说明它的容器注解是哪个
 */
@Repeatable(RepeatableAnnotations.class)
public @interface RepeatableAnnotation {
    int a() default 0;
    int b() default 0;
    int c() default 0;
}

package com.example.annotationdemo.repeatable;

import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;

/**
 * 容器注解
 * 声明后不需要再关注
 */
@Retention(RetentionPolicy.RUNTIME)
public @interface RepeatableAnnotations {
    RepeatableAnnotation[] value();
}

package com.example.annotationdemo.repeatable;

public class RepeatableTest {

    @RepeatableAnnotation(a=1,b=2,c=3)
    @RepeatableAnnotation(a=1,b=2,c=4)
    public static void add(int a,int b,int c){
        if(c!=(a+b)){
            throw new ArithmeticException("Wrong");
        }
    }
}

package com.example.annotationdemo.repeatable;

import java.lang.reflect.InvocationTargetException;
import java.lang.reflect.Method;

@CommonAnnotation
//@CommonAnnotation
@RepeatableAnnotation
@RepeatableAnnotation
public class RepeatableTestMain {

    public static void main(String[] args) throws Exception {
        String className = "com.example.annotationdemo.repeatable.RepeatableTest";
        for (Method m : Class.forName(className).getMethods()) {
            if (m.isAnnotationPresent(RepeatableAnnotations.class)) {
                //获取所有容器注解
                RepeatableAnnotation[] annos = m.getAnnotationsByType(RepeatableAnnotation.class);
                for (RepeatableAnnotation anno : annos) {
                    System.out.println("================================");
                    System.out.println(anno.a() + "," + anno.b() + "," + anno.c());
                    try {
                        m.invoke(null, anno.a(), anno.b(), anno.c());
                    } catch (Throwable e) {
                        System.out.printf("Test %s failed: %s %n", m, e.getCause());
                        System.out.println("================================");
                    }
                }
            }
        }
    }

}

F:\jdk1.8.0_201\bin\java.exe "-javaagent:F:\IntelliJ IDEA 2020\lib\idea_rt.jar=63710:F:\IntelliJ IDEA 2020\bin" -Dfile.encoding=UTF-8 -classpath F:\jdk1.8.0_201\jre\lib\charsets.jar;F:\jdk1.8.0_201\jre\lib\deploy.jar;F:\jdk1.8.0_201\jre\lib\ext\access-bridge-64.jar;F:\jdk1.8.0_201\jre\lib\ext\cldrdata.jar;F:\jdk1.8.0_201\jre\lib\ext\dnsns.jar;F:\jdk1.8.0_201\jre\lib\ext\jaccess.jar;F:\jdk1.8.0_201\jre\lib\ext\jfxrt.jar;F:\jdk1.8.0_201\jre\lib\ext\localedata.jar;F:\jdk1.8.0_201\jre\lib\ext\nashorn.jar;F:\jdk1.8.0_201\jre\lib\ext\sunec.jar;F:\jdk1.8.0_201\jre\lib\ext\sunjce_provider.jar;F:\jdk1.8.0_201\jre\lib\ext\sunmscapi.jar;F:\jdk1.8.0_201\jre\lib\ext\sunpkcs11.jar;F:\jdk1.8.0_201\jre\lib\ext\zipfs.jar;F:\jdk1.8.0_201\jre\lib\javaws.jar;F:\jdk1.8.0_201\jre\lib\jce.jar;F:\jdk1.8.0_201\jre\lib\jfr.jar;F:\jdk1.8.0_201\jre\lib\jfxswt.jar;F:\jdk1.8.0_201\jre\lib\jsse.jar;F:\jdk1.8.0_201\jre\lib\management-agent.jar;F:\jdk1.8.0_201\jre\lib\plugin.jar;F:\jdk1.8.0_201\jre\lib\resources.jar;F:\jdk1.8.0_201\jre\lib\rt.jar;C:\Users\Administrator\IdeaProjects\geektime-spring-family-learning\annotation-demo\target\classes;C:\Users\Administrator\.m2\repository\org\springframework\boot\spring-boot-starter\2.2.6.RELEASE\spring-boot-starter-2.2.6.RELEASE.jar;C:\Users\Administrator\.m2\repository\org\springframework\boot\spring-boot\2.2.6.RELEASE\spring-boot-2.2.6.RELEASE.jar;C:\Users\Administrator\.m2\repository\org\springframework\spring-context\5.2.5.RELEASE\spring-context-5.2.5.RELEASE.jar;C:\Users\Administrator\.m2\repository\org\springframework\spring-aop\5.2.5.RELEASE\spring-aop-5.2.5.RELEASE.jar;C:\Users\Administrator\.m2\repository\org\springframework\spring-beans\5.2.5.RELEASE\spring-beans-5.2.5.RELEASE.jar;C:\Users\Administrator\.m2\repository\org\springframework\spring-expression\5.2.5.RELEASE\spring-expression-5.2.5.RELEASE.jar;C:\Users\Administrator\.m2\repository\org\springframework\boot\spring-boot-autoconfigure\2.2.6.RELEASE\spring-boot-autoconfigure-2.2.6.RELEASE.jar;C:\Users\Administrator\.m2\repository\org\springframework\boot\spring-boot-starter-logging\2.2.6.RELEASE\spring-boot-starter-logging-2.2.6.RELEASE.jar;C:\Users\Administrator\.m2\repository\ch\qos\logback\logback-classic\1.2.3\logback-classic-1.2.3.jar;C:\Users\Administrator\.m2\repository\ch\qos\logback\logback-core\1.2.3\logback-core-1.2.3.jar;C:\Users\Administrator\.m2\repository\org\apache\logging\log4j\log4j-to-slf4j\2.12.1\log4j-to-slf4j-2.12.1.jar;C:\Users\Administrator\.m2\repository\org\apache\logging\log4j\log4j-api\2.12.1\log4j-api-2.12.1.jar;C:\Users\Administrator\.m2\repository\org\slf4j\jul-to-slf4j\1.7.30\jul-to-slf4j-1.7.30.jar;C:\Users\Administrator\.m2\repository\jakarta\annotation\jakarta.annotation-api\1.3.5\jakarta.annotation-api-1.3.5.jar;C:\Users\Administrator\.m2\repository\org\springframework\spring-core\5.2.5.RELEASE\spring-core-5.2.5.RELEASE.jar;C:\Users\Administrator\.m2\repository\org\springframework\spring-jcl\5.2.5.RELEASE\spring-jcl-5.2.5.RELEASE.jar;C:\Users\Administrator\.m2\repository\org\yaml\snakeyaml\1.25\snakeyaml-1.25.jar;C:\Users\Administrator\.m2\repository\org\slf4j\slf4j-api\1.7.30\slf4j-api-1.7.30.jar com.example.annotationdemo.repeatable.RepeatableTestMain
================================
1,2,3
================================
1,2,4
Test public static void com.example.annotationdemo.repeatable.RepeatableTest.add(int,int,int) failed: java.lang.ArithmeticException: Wrong 
================================

Process finished with exit code 0
posted @ 2020-07-11 16:25  ukyo--碳水化合物  阅读(420)  评论(0)    收藏  举报