av激情亚洲男人的天堂国语,日韩欧美精品一中文字幕,无码av一区二区三区无码,国产又色又爽又刺激的a片,国产又色又爽又刺激的a片

JUnit3.8通過反射測試私有方法

測試私有(private)的方法有兩種:

錫林郭勒盟網(wǎng)站制作公司哪家好,找創(chuàng)新互聯(lián)建站!從網(wǎng)頁設(shè)計、網(wǎng)站建設(shè)、微信開發(fā)、APP開發(fā)、響應(yīng)式網(wǎng)站等網(wǎng)站項目制作,到程序開發(fā),運營維護。創(chuàng)新互聯(lián)建站2013年開創(chuàng)至今到現(xiàn)在10年的時間,我們擁有了豐富的建站經(jīng)驗和運維經(jīng)驗,來保證我們的工作的順利進(jìn)行。專注于網(wǎng)站建設(shè)就選創(chuàng)新互聯(lián)建站。

1)把目標(biāo)類的私有方法(修飾符:private)修改為(public),不推薦,因為修改了源程序不佳

2)通過反射 (推薦)

代碼演示:

目標(biāo)程序

PrivateMethod.java

 
 
 
  1. package com.junit3_8;
  2. public class PrivateMethod {
  3.     //私有方法
  4.     private int add(int a, int b)
  5.     {       
  6.         return a +b ;
  7.         
  8.     }
  9. }

測試程序

PrivateMethodTest.java

 
 
 
  1. package com.junit3_8;
  2. import java.lang.reflect.Method;
  3. import junit.framework.Assert;
  4. import junit.framework.TestCase;
  5. /**
  6.  * 通過反射測試私有方法,
  7.  * 
  8.  */
  9. public class PrivateMethodTest extends TestCase {
  10.     
  11.     public void testAdd() throws Exception
  12.     {
  13.         //PrivateMethod pm = new PrivateMethod();
  14.         //獲取目標(biāo)類的class對象
  15.         Class class1 = PrivateMethod.class;
  16.         
  17.         //獲取目標(biāo)類的實例
  18.         Object instance = class1.newInstance();
  19.         
  20.         //getDeclaredMethod()  可獲取 公共、保護、默認(rèn)(包)訪問和私有方法,但不包括繼承的方法。
  21.         //getMethod() 只可獲取公共的方法
  22.         Method method = class1.getDeclaredMethod("add", new Class[]{int.class,int.class});
  23.         
  24.         //值為true時 反射的對象在使用時 應(yīng)讓一切已有的訪問權(quán)限取消
  25.         method.setAccessible(true);
  26.         
  27.         Object result = method.invoke(instance, new Object[]{1,2});
  28.         
  29.         Assert.assertEquals(3, result);
  30.         
  31.     
  32.     }
  33. }

小 結(jié):

getDeclaredMethod() 可獲取 公共、保護、默認(rèn)(包)訪問和私有方法,但不包括繼承的方法。

getMethod() 只可獲取公共的方法

 
 
 
  1. Method method = class1.getDeclaredMethod("add", new Class[]{int.class,int.class});

等價于

 
 
 
  1. Method method = class1.getDeclaredMethod("add", new Class[]{Integer.TYPE,int.Integer.TYPE});

因為 Integer.TYPE 表示基本類型 int 的 Class 實例。

原文連接:http://blog.csdn.net/hzc543806053/article/details/7340546


當(dāng)前名稱:JUnit3.8通過反射測試私有方法
轉(zhuǎn)載來源:http://uogjgqi.cn/article/cdshdjo.html
掃二維碼與項目經(jīng)理溝通

我們在微信上24小時期待你的聲音

解答本文疑問/技術(shù)咨詢/運營咨詢/技術(shù)建議/互聯(lián)網(wǎng)交流