當前位置:首頁 » 編程語言 » java反射類方法

java反射類方法

發布時間: 2024-01-26 22:42:46

java反射的幾個工具方法

//第一種方式獲取Class對象

Studentstu1=newStudent();//這一new產生一個Student對象,一個Class對象。
ClassstuClass=stu1.getClass();//獲取Class對象
System.out.println(stuClass.getName());

//第二種方式獲取Class對象

ClassstuClass2=Student.class;
System.out.println(stuClass==stuClass2);//判斷第一種方式獲取的Class對象和第二種方式獲取的是否是同一個

//第三種方式獲取Class對象

try{
ClassstuClass3=Class.forName("fanshe.Student");//注意此字元串必須是真實路徑,就是帶包名的類路徑,包名.類名
System.out.println(stuClass3==stuClass2);//判斷三種方式是否獲取的是同一個Class對象
}catch(ClassNotFoundExceptione){
e.printStackTrace();
}

❷ 關於用java反射調用一個類裡面的方法並執行

Java中要用到反射,首先就必須要獲取到對應的class對象,在Java中有三種方法獲取類對應的class對象。

1、通過類的.class屬性

2、通過類實例的getClass()方法獲取

3、通過Class.forName(String className)方法獲取

現在比如在package下有個類Calculator

publicclassCalculator{	

publicdoubleadd(doublescore1,doublescore2){
returnscore1+score2;
}

publicvoidprint(){
System.out.println("OK");
}

publicstaticdoublemul(doublescore1,doublescore2){
returnscore1*score2;
}
}
publicclassCalculatorTest{

publicstaticvoidmain(String[]args)throwsException{
//通過類的.class屬性獲取
Class<Calculator>clz=Calculator.class;
//或者通過類的完整路徑獲取,這個方法由於不能確定傳入的路徑是否正確,這個方法會拋ClassNotFoundException
// Class<Calculator>clz=Class.forName("test.Calculator");
//或者new一個實例,然後通過實例的getClass()方法獲取
// Calculators=newCalculator();
// Class<Calculator>clz=s.getClass();
//1.獲取類中帶有方法簽名的mul方法,getMethod第一個參數為方法名,第二個參數為mul的參數類型數組
Methodmethod=clz.getMethod("mul",newClass[]{double.class,double.class});
//invoke方法的第一個參數是被調用的對象,這里是靜態方法故為null,第二個參數為給將被調用的方法傳入的參數
Objectresult=method.invoke(null,newObject[]{2.0,2.5});
//如果方法mul是私有的private方法,按照上面的方法去調用則會產生異常NoSuchMethodException,這時必須改變其訪問屬性
//method.setAccessible(true);//私有的方法通過發射可以修改其訪問許可權
System.out.println(result);//結果為5.0
//2.獲取類中的非靜態方法
Methodmethod_2=clz.getMethod("add",newClass[]{double.class,double.class});
//這是實例方法必須在一個對象上執行
Objectresult_2=method_2.invoke(newCalculator(),newObject[]{2.0,2.5});
System.out.println(result_2);//4.5
//3.獲取沒有方法簽名的方法print
Methodmethod_3=clz.getMethod("print",newClass[]{});
Objectresult_3=method_3.invoke(newCalculator(),null);//result_3為null,該方法不返回結果
}
}

❸ java反射最常用的幾個方法

下面給你介紹Java反射常用的2種方法:

  1. 獲取javaBean的屬性

❹ java中反射的三種方法是

第一種:通過forName()方法;

第二種:類.class;

第三種:對象.getClass()。

舉例如下:

package
test;

public class Demo{

public static void
main(){

Class<?> c1 = null;

Class<?> c2 =
null;

Class<?> c3 =
null;

//三種反射用實例化方式

try{

//最常用的一種形式

c1 =
Class.forName("test.X");

}catch(ClassNotFoundException
e){

e.printStackTrace();

}

//通過Object類中的方法實例化

c2
= new X().getClass();

//通過類.class實例化

c3 =
X.class;

System.out.println("類名:" + c1.getName());
//得到類名

System.out.println("類名:" + c2.getName());
//得到類名

System.out.println("類名:" + c3.getName());
//得到類名

}

}

熱點內容
龍村m腳本 發布:2024-11-29 17:38:10 瀏覽:781
linuxc配置文件 發布:2024-11-29 17:08:31 瀏覽:826
wow刷碎片腳本 發布:2024-11-29 15:58:24 瀏覽:591
明小子源碼 發布:2024-11-29 15:15:30 瀏覽:144
蘋果8plus什麼配置 發布:2024-11-29 14:16:36 瀏覽:677
androidmvp結構 發布:2024-11-29 14:16:34 瀏覽:536
androidsqlite命令 發布:2024-11-29 14:04:38 瀏覽:156
信用卡分期演算法 發布:2024-11-29 13:50:56 瀏覽:808
安卓手機dll文件為什麼打不開 發布:2024-11-29 13:40:49 瀏覽:1003
百分之五十石碳酸怎麼配置 發布:2024-11-29 13:38:56 瀏覽:974