Java注解案例-简单测试框架
生活随笔
收集整理的這篇文章主要介紹了
Java注解案例-简单测试框架
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
目錄
一、需求
Calculator類:
Check注解:
TestCheck類:
二、運行結果
控制臺:
記錄異常的文件(bug.txt):
三、結論
一、需求
需求:當主方法執行后,會自動執行被檢測的所有方法(加了Check注解的方法),判斷方法是否有異常,記錄到文件中
Calculator類:
import demo.Check;/*小明定義的計算機類*/ public class Calculator {//加法@Checkpublic void add() {String str = null;str.toString();System.out.println("1 + 0 =" + (1 + 0));}//減法@Checkpublic void sub() {System.out.println("1 - 0 =" + (1 - 0));}//乘法@Checkpublic void mul() {System.out.println("1 * 0 =" + (1 * 0));}//除法@Checkpublic void div() {System.out.println("1 / 0 =" + (1 / 0));}public void show() {System.out.println("永無bug...");} }Check注解:
import java.lang.annotation.ElementType; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; import java.lang.annotation.Target;@Retention(RetentionPolicy.RUNTIME) @Target(ElementType.METHOD) public @interface Check { }TestCheck類:
import java.io.BufferedWriter; import java.io.FileWriter; import java.io.IOException; import java.lang.reflect.InvocationTargetException; import java.lang.reflect.Method;/*** 簡單的測試框架** 當主方法執行后,會自動執行被檢測的所有方法(加了Check注解的方法),判斷方法是否有異常,記錄到文件中*/ public class TestCheck {public static void main(String[] args) throws IOException {//1、創建計算器對象Calculator c = new Calculator();//2、獲取字節碼文件對象Class cls = c.getClass();//3、獲取所有方法Method[] methods = cls.getMethods();int number = 0;//出現異常的次數BufferedWriter bw = new BufferedWriter(new FileWriter("bug.txt"));for (Method method : methods) {//4、判斷方法上是否有Check注解if (method.isAnnotationPresent(Check.class)) {try {method.invoke(c);} catch (Exception e) {//6、捕獲異常//記錄到文件中number++;bw.write(method.getName() + "方法出異常了");bw.newLine();bw.write("異常的名稱:" + e.getCause().getClass().getSimpleName());bw.newLine();bw.write("異常的原因:" + e.getCause().getMessage());bw.newLine();bw.write("---------------------");bw.newLine();}}}bw.write("本次測試一共出現" + number + "次異常");bw.flush();bw.close();} }二、運行結果
控制臺:
?記錄異常的文件(bug.txt):
三、結論
1、大多數的時候是使用注解,而不是自定義注解
2、注解給誰用,編譯器和解析給程序用
3、注解不是程序的一部分,可以理解為注解就是一個標簽
總結
以上是生活随笔為你收集整理的Java注解案例-简单测试框架的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 源恒软件产品---地产行业集团税务信息化
- 下一篇: JavaWEB快速入门之验证码及课堂项目