import java.lang.annotation.*; import java.lang.reflect.*; public class Annotation { public static void main(String[] args) { int tests = 0; int passed = 0; Class<?> testClass = AnnotationTest.class; for (Method m : testClass.getDeclaredMethods()) { if (m.isAnnotationPresent(Test.class)) { tests++; try { System.out.println(m + " @Test(" + m.getAnnotation(Test.class).value() + "): "); m.invoke(null); passed++; } catch (InvocationTargetException wrappedExc) { Throwable exc = wrappedExc.getCause(); System.out.println(m + " failed: " + exc); } catch (Exception exc) { System.out.println("INVALID @Test: " + m); } } } System.out.printf("Passed: %d, Failed: %d%n", passed, tests - passed); } } @Retention(RetentionPolicy.RUNTIME) @Target(ElementType.METHOD) @interface Test { String value() default "default"; } class AnnotationTest { @Test("chenzq") public static void m1() { } // Test should pass @Test("jaeson") public static void m2() { // Test Should fail throw new RuntimeException("Boom"); } @Test public void m5() { } // INVALID USE: nonstatic method }
输出为:
public static void com.jaeson.AnnotationTest.m1() @Test(chenzq):
public static void com.jaeson.AnnotationTest.m2() @Test(jaeson):
public static void com.jaeson.AnnotationTest.m2() failed: java.lang.RuntimeException: Boom
public void com.jaeson.AnnotationTest.m5() @Test(default):
INVALID @Test: public void com.jaeson.AnnotationTest.m5()
Passed: 1, Failed: 2
相关推荐
Java Annotation注解技术
本文针对java初学者或者annotation初次使用者全面地说明了annotation的使用方法、定义方式、分类。初学者可以通过以上的说明制作简单的annotation程序,但是对于一些高级的annotation应用(例如使用自定义annotation...
java Annotation 注解,详细讲解注解使用及原理
java1.5 annotation注释源代码,
如果你想知道java annotation是什么?你可以看看
利用annotation(注解)开放简化java开放步骤
Java.Annotation注解.part4
主要介绍了Java Annotation注解相关原理代码总结,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
Java.Annotation注解.part3
Java.Annotation注解.part2
Java.Annotation注解.part1
NULL 博文链接:https://yangeoo.iteye.com/blog/2291875
annotation注解demo,发射获取方法
Android Studio Annotation注解技术版本号描述日期(更新日期)/更新人1.0Java Annotation注解2018/09/25 刘志保
java annotation 注解 。。。慎重下载。。。
用注解的方式定义一个Servlet,就不用在web.xml中配置了。Servlet的访问URL是Servlet的必选属性,可以选择使用urlPatterns或者value定义。 像上面的AnnotationServlet可以描述成@WebServlet(name="Annotation...
java注解annotation
Java注解Annotation用起来很方便,也越来越流行,由于其简单、简练且易于使用等特点,很多开发工具都提供了注解功能,不好的地方就是代码入侵比较严重,所以使用的时候要有一定的选择性。 这篇文章将利用注解,来做...
JAVA注解(Annotation).doc JAVA注解(Annotation).doc
JPA、EJB、Spring零配置等等怎么使用相信各位读者都能掌握,这里主要是说如何自定义自己的注解,自己使用自定义的注解。