色欲av一区久久精品_久久综合色综合色88_无码在线观看不卡_色黄视频网站_亚洲国产精品久久久久秋霞66

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

時(shí)間:2023-05-15

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

packagecom.mysec.reflex;
importjava.lang.reflect.Constructor;
importjava.lang.reflect.Field;
importjava.lang.reflect.Method;
//通過(guò)反射獲取辦法信息
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());//不帶包名的稱號(hào)
//}
/**
*打印類的信息,包含類的成員函數(shù)、成員變量(只獲取成員函數(shù))
*
*@paramobject
*該目標(biāo)所屬類的信息
*/
publicstaticvoidprintClassMethodMessage(Objectobject){//該類所屬的信息
//要獲取類的信息,首先要獲取類的類類型
Class>class1=object.getClass();//傳遞的是哪個(gè)子類的目標(biāo),class1便是該子類的類類型
//獲取類的稱號(hào)
System.out.println(“類的稱號(hào)是:”+class1.getName());
/**
*Method類,辦法目標(biāo)一個(gè)成員辦法便是一個(gè)Method目標(biāo)getMehtod()辦法
*獲取的是一切得public的函數(shù),包含父類繼承的getDeclaredMethods()獲取的是一切該類聲明的辦法,不同訪問(wèn)權(quán)限
*/
Method[]ms=class1.getMethods();
for(inti=0;i<ms.length;i++){
//得到辦法的返回值類型的類類型
Class>returnType=ms[i].getReturnType();
System.out.print(returnType.getName()+””);
//得到辦法的稱號(hào)
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();//傳遞的是哪個(gè)子類的目標(biāo),class1便是該子類的類類型
//獲取類的稱號(hào)
System.out.println(“類的稱號(hào)是:”+class1.getName());
/**
*成員變量也是目標(biāo)java.lang.reflect.FieldField類封裝了關(guān)于成員變量的操作
*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);
}
}
/**
*打印目標(biāo)的結(jié)構(gòu)函數(shù)的信息
*
*@paramobject
*/
publicstaticvoidprintConMessage(Objectobject){
Class>class1=object.getClass();
/**
*結(jié)構(gòu)函數(shù)也是目標(biāo)java.lang.Constructor中封裝了結(jié)構(gòu)函數(shù)的信息
*getConstructors獲取一切的public的結(jié)構(gòu)函數(shù)getDeclaredConstructors得到一切的結(jié)構(gòu)函數(shù)
*/
//Constructor[]cs=class1.getConstructors();
Constructor[]cs=class1.getDeclaredConstructors();
for(Constructorconstructor:cs){
System.out.print(constructor.getName()+”(“);
//獲取結(jié)構(gòu)函數(shù)的參數(shù)列表—>得到的是參數(shù)列表的類類型
Class[]paramTypes=constructor.getParameterTypes();
for(Classclass2:paramTypes){
System.out.print(class2.getName()+”,”);
}
System.out.println(“)”);
}
}
}

文章標(biāo)簽:

Copyright ? 2016 廣州思洋文化傳播有限公司,保留所有權(quán)利。 粵ICP備09033321號(hào)

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