JDK 1.5 特性使用实例5--metadata
来源:互联网 发布:软件用户手册使用步骤 编辑:程序博客网 时间:2024/05/17 23:39
定义一个metadata . Test.java
package maoxiang.examples.jdk15.metadata;
import java.lang.annotation.*;
/**
* Indicates that the annotated method is a test method.
* This annotation should be used only on parameterless static methods.
*/
@Retention(RetentionPolicy.RUNTIME)
@Target(ElementType.METHOD)
public @interface Test { }
在别的类中使用metadata. Foo.java
package maoxiang.examples.jdk15.metadata;
/**
* @author 毛翔
*
*/
public class Foo {
public static void main(String[] args) {
}
@Test public static void m1() { }
public static void m2() { }
@Test public static void m3() {
throw new RuntimeException("Boom");
}
public static void m4() { }
@Test public static void m5() { }
public static void m6() { }
@Test public static void m7() {
throw new RuntimeException("Crash");
}
public static void m8() { }
}
利用metadata . RunTests.java
package maoxiang.examples.jdk15.metadata;
import java.lang.reflect.Method;
import maoxiang.examples.jdk15.metadata.Demo.Test;
/**
* @author 毛翔
*
*/
public class RunTests {
public static void main(String[] args) throws Exception {
int passed = 0, failed = 0;
for (Method m : Class.forName(args[0]).getMethods()) {
if (m.isAnnotationPresent(maoxiang.examples.jdk15.metadata.Test.class)) {
try {
m.invoke(null);
passed++;
} catch (Throwable ex) {
System.out.printf("Test %s failed: %s %n", m, ex.getCause());
failed++;
}
}
}
System.out.printf("Passed: %d, Failed %d%n", passed, failed);
}
}
- JDK 1.5 特性使用实例5--metadata
- JDK 1.5 特性使用实例1--Generics
- JDK 1.5 特性使用实例2--Varargs
- JDK 1.5 特性使用实例3--AutoBoxing
- JDK 1.5 特性使用实例4--Enum
- JDK 1.5 特性使用实例6--staticimport
- JDK 1.5 特性使用实例7--运行外部程序
- JDK 1.5 特性
- JDK 1.5新特性
- JDK 1.5 新特性
- JDK 1.5新特性
- JDK 1.5 新特性
- JDK 1.5 新特性
- JDK 1.5特性
- JDK 1.5-1.8特性
- 使用jdk动态代理实例
- jdk 1.5新特性说明
- Java JDK-1.5高级特性
- JDK 1.5 特性使用实例3--AutoBoxing
- What is Favicon.ico? Personalise Your Site's Bookmark(zt)
- JDK 1.5 特性使用实例4--Enum
- javascript 怎样比较日期/时间的大小
- Log4J与JBuilder、Eclipse配合使用指南
- JDK 1.5 特性使用实例5--metadata
- 缩小SQL SERVER日志文件
- JDK 1.5 特性使用实例6--staticimport
- 免费申请优易普企业管理软件注册码!!!
- JDK 1.5 特性使用实例7--运行外部程序
- 免费下载优易普企业管理软件单机免费版!!!
- 如何使IFrame的长宽与内容自动适应大小
- 一个未成熟的数据库连接池(part 1)
- ARX中如何insert一个图(zt)