北京女护士“菲妥妥”一家真自杀了疑似到湖南自杀,两死一伤!
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
本文来自博客园,作者:ukyo--碳水化合物,转载请注明原文链接:https://www.cnblogs.com/ukzq/p/13284118.html

浙公网安备 33010602011771号