精品国产美女福到在线不卡_中文字幕精品无码亚洲成a人_在线视频最新免费无码又爽又刺激涩涩_久久综合视频97_国产香蕉尹人综合视频网

java反射獲取方法參數(shù)名及類型詳解

時間:2023-05-15

java反射獲取方法參數(shù)名及類型詳解

packagecom.mysec.reflex;
importjava.lang.reflect.Constructor;
importjava.lang.reflect.Field;
importjava.lang.reflect.Method;
//通過反射獲取辦法信息
publicclassgetMethodUtil{
publicstaticvoidmain(String[]args){
Stringstring=”hell”;
//printClassMethodMessage(string);
//printFieldMessage(string);
printConMessage(string);
}
//publicstaticvoidmain(String[]args){
//Class>c1=int.class;
//Class>c2=String.class;
//Class>c3=double.class;
//Class>c4=Double.class;
//Class>c5=void.class;
//System.out.println(c1.getName());
//System.out.println(c2.getName());
//System.out.println(c2.getSimpleName());//不帶包名的稱號
//}
/**
*打印類的信息,包含類的成員函數(shù)、成員變量(只獲取成員函數(shù))
*
*@paramobject
*該目標所屬類的信息
*/
publicstaticvoidprintClassMethodMessage(Objectobject){//該類所屬的信息
//要獲取類的信息,首先要獲取類的類類型
Class>class1=object.getClass();//傳遞的是哪個子類的目標,class1便是該子類的類類型
//獲取類的稱號
System.out.println(“類的稱號是:”+class1.getName());
/**
*Method類,辦法目標一個成員辦法便是一個Method目標getMehtod()辦法
*獲取的是一切得public的函數(shù),包含父類繼承的getDeclaredMethods()獲取的是一切該類聲明的辦法,不同訪問權限
*/
Method[]ms=class1.getMethods();
for(inti=0;i<ms.length;i++){
//得到辦法的返回值類型的類類型
Class>returnType=ms[i].getReturnType();
System.out.print(returnType.getName()+””);
//得到辦法的稱號
System.out.print(ms[i].getName()+”(“);
//獲取參數(shù)類型
Class[]paramTypes=ms[i].getParameterTypes();
for(Classclass2:paramTypes){
System.out.print(class2.getName()+”,”);
}
System.out.println(“)”);
printFieldMessage(class1);
}
}
/**
*獲取成員變量信息
*
*@paramobject
*/
privatestaticvoidprintFieldMessage(Objectobject){
//要獲取類的信息,首先要獲取類的類類型
Class>class1=object.getClass();//傳遞的是哪個子類的目標,class1便是該子類的類類型
//獲取類的稱號
System.out.println(“類的稱號是:”+class1.getName());
/**
*成員變量也是目標java.lang.reflect.FieldField類封裝了關于成員變量的操作
*getFields()辦法獲取的是一切的public的成員變量的信息
*getDeclaredFields獲取的是該類自己聲明的成員變量的信息
*/
//Field[]fs=class1.getFields();
Field[]fs=class1.getDeclaredFields();
for(Fieldfield:fs){
//得到成員變量的類型的類類型
Class>filedType=field.getType();
StringtypeName=filedType.getName();
StringfieldName=field.getName();
System.out.println(typeName+””+fieldName);
}
}
/**
*打印目標的結構函數(shù)的信息
*
*@paramobject
*/
publicstaticvoidprintConMessage(Objectobject){
Class>class1=object.getClass();
/**
*結構函數(shù)也是目標java.lang.Constructor中封裝了結構函數(shù)的信息
*getConstructors獲取一切的public的結構函數(shù)getDeclaredConstructors得到一切的結構函數(shù)
*/
//Constructor[]cs=class1.getConstructors();
Constructor[]cs=class1.getDeclaredConstructors();
for(Constructorconstructor:cs){
System.out.print(constructor.getName()+”(“);
//獲取結構函數(shù)的參數(shù)列表—>得到的是參數(shù)列表的類類型
Class[]paramTypes=constructor.getParameterTypes();
for(Classclass2:paramTypes){
System.out.print(class2.getName()+”,”);
}
System.out.println(“)”);
}
}
}

文章標簽:

Copyright ? 2016 廣州思洋文化傳播有限公司,保留所有權利。 粵ICP備09033321號

與項目經(jīng)理交流
掃描二維碼
與項目經(jīng)理交流
掃描二維碼
與項目經(jīng)理交流
ciya68