欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

淺談java運(yùn)用注解實(shí)現(xiàn)對類中的方法檢測的工具

 更新時間:2020年08月03日 16:55:54   作者:LL_19980115  
這篇文章主要介紹了淺談java運(yùn)用注解實(shí)現(xiàn)對類中的方法檢測的工具,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧

創(chuàng)建自定義注解

@Retention(RetentionPolicy.RUNTIME)
@Target(ElementType.METHOD)
public @interface Test {

}

建立測試類

public class UserTest {
	
	@Test
	public void testInsert() {
		User user = null;
		System.out.println(user.getUsername());
	}
	
	@Test
	public void testQuery() {
		Blog b = new Blog();
		b.setTips(new String[] {"技術(shù)","java","多線程"});
		String[] tips = b.getTips();
		System.out.println(tips[3]);
	}
	
	@Test
	public void divide() {
		System.out.println(10/0);
	}
	

}

編寫工具類

public static void main(String[] args) {
		BufferedWriter bw = null;
		try {
			//記錄方法總數(shù)
			int methodCount = 0;
			//記錄錯誤方法總數(shù)
			int expCount = 0;
			//準(zhǔn)備一個文件輸出流,用于記錄程序執(zhí)行過程中的異常信息
			bw = new BufferedWriter(new FileWriter("log.txt"));
			// 獲取類的Class對象
			Class clz = UserTest.class;
			//創(chuàng)建目標(biāo)類型的實(shí)例對象
			Object obj = clz.newInstance();
			//獲取所有的方法對象
			Method[] methods = clz.getMethods();
			for (Method m : methods) {
				if(m.isAnnotationPresent(Test.class)) {
					//統(tǒng)計總共有多少方法需要被測試
					methodCount++;
				}
			}
			bw.write("測試方法總數(shù):" + methodCount);
			bw.newLine();
			bw.write("================================");
			bw.newLine();
			for (Method m : methods) {
				try {
					//如果方法上面包含了Test注解則作為測試方法進(jìn)行測試
					if(m.isAnnotationPresent(Test.class)) {
						m.invoke(obj);
					}
				} catch (Exception e) {
					//異常方法計數(shù)器遞增
					expCount++;
					bw.write(m.getName() + "出現(xiàn)異常");
					bw.newLine();
					bw.write("類型:" + e.getCause().getClass());
					bw.newLine();
					bw.write("原因:" + e.getCause().getMessage());
					bw.newLine();
					bw.write("================================");
					bw.newLine();
				}
			}
			bw.write("錯誤方法總數(shù):" + expCount);
			bw.newLine();
		} catch (Exception e) {
			e.printStackTrace();
		}finally {
			try {
				if(bw != null) {
					bw.flush();
					bw.close();
				}
			} catch (IOException e) {
				e.printStackTrace();
			}
		}
	}

到此這篇關(guān)于淺談java運(yùn)用注解實(shí)現(xiàn)對類中的方法檢測的工具的文章就介紹到這了,更多相關(guān)java運(yùn)用注解實(shí)現(xiàn)對類中的方法檢測的工具內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Java中Map接口使用以及有關(guān)集合的面試知識點(diǎn)匯總

    Java中Map接口使用以及有關(guān)集合的面試知識點(diǎn)匯總

    在java面試過程中,Map時常會被作為一個面試點(diǎn)來問,下面這篇文章主要給大家介紹了關(guān)于Java中Map接口使用以及有關(guān)集合的面試知識點(diǎn)匯總的相關(guān)資料,文中通過實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2022-07-07
  • Java C++題解leetcode816模糊坐標(biāo)示例

    Java C++題解leetcode816模糊坐標(biāo)示例

    這篇文章主要為大家介紹了Java C++題解leetcode816模糊坐標(biāo)示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-01-01
  • Java后端對接微信支付(小程序、APP、PC端掃碼)包含查單退款

    Java后端對接微信支付(小程序、APP、PC端掃碼)包含查單退款

    微信支付我們主要聚焦于這三種支付方式,其中JSPAI與APP主要與uniapp開發(fā)微信小程序與APP對接,本文主要介紹了Java后端對接微信支付(小程序、APP、PC端掃碼)包含查單退款,具有一定的參考價值,感興趣的可以了解一下
    2021-12-12
  • 輕松學(xué)會使用JavaMail?API發(fā)送郵件

    輕松學(xué)會使用JavaMail?API發(fā)送郵件

    想要輕松學(xué)會使用JavaMail?API發(fā)送郵件嗎?本指南將帶你快速掌握這一技能,讓你能夠輕松發(fā)送電子郵件,無論是個人還是工作需求,跟著我們的步驟,很快你就可以在Java應(yīng)用程序中自如地處理郵件通信了!
    2023-12-12
  • 關(guān)于為何說JAVA中要慎重使用繼承詳解

    關(guān)于為何說JAVA中要慎重使用繼承詳解

    Java繼承是面向?qū)ο蟮淖铒@著的一個特征,然而下面這篇文章主要給大家介紹了關(guān)于為何說JAVA中要慎重使用繼承的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),需要的朋友可以參考借鑒,下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2018-08-08
  • java中HashSet的特點(diǎn)及實(shí)例用法

    java中HashSet的特點(diǎn)及實(shí)例用法

    在本篇文章里小編給大家整理的是一篇關(guān)于java中HashSet的特點(diǎn)及實(shí)例用法,有興趣的朋友們可以學(xué)習(xí)下。
    2021-04-04
  • Java指令重排引發(fā)問題及解決方案

    Java指令重排引發(fā)問題及解決方案

    指令重排是JVM在解釋執(zhí)行Java代碼時對指令順序進(jìn)行重新排列的一種優(yōu)化技術(shù),本文主要介紹了Java指令重排引發(fā)問題及解決方案,感興趣的可以了解一下
    2023-08-08
  • Java中淺拷貝與深拷貝實(shí)例解析

    Java中淺拷貝與深拷貝實(shí)例解析

    這篇文章主要給大家介紹了關(guān)于Java中淺拷貝與深拷貝的相關(guān)資料,拷貝對象是java中經(jīng)常會遇到的問題,文中通過代碼示例介紹的非常詳細(xì),需要的朋友可以參考下
    2023-09-09
  • SpringBoot開發(fā)之整合Mybatis詳解

    SpringBoot開發(fā)之整合Mybatis詳解

    這篇文章主要介紹了SpringBoot開發(fā)之整合Mybatis詳解,MyBatis是一個半自動的ORM框架,它允許我們通過編寫SQL語句來操作數(shù)據(jù)庫,使用MyBatis,我們可以通過定義映射文件(XML文件)或使用注解的方式將Java對象與數(shù)據(jù)庫表進(jìn)行映射,需要的朋友可以參考下
    2023-09-09
  • Java內(nèi)存溢出案例模擬和原理分析過程

    Java內(nèi)存溢出案例模擬和原理分析過程

    這篇文章主要介紹了Java內(nèi)存溢出案例模擬和原理分析過程,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2020-04-04

最新評論