java 反射

import java.lang.reflect.Field;

import java.lang.reflect.Method;

import java.lang.reflect.Modifier;


public class ReflectionTest {

public static void main(String[] args) {

Class c=null;

try {

c=Class.forName("java.lang.String");

System.out.println("package "+c.getPackage().getName()+";");

System.out.print(Modifier.toString(c.getModifiers()));

System.out.print(" class "+c.getSimpleName());

System.out.print(" extends "+c.getSuperclass().getName());

Class[] inters=c.getInterfaces();

if(inters.length>0){

System.out.print(" implements ");

for(int i=0;i<inters.length;i++){

System.out.print(inters[i].getName());

if(i<inters.length-1){

System.out.print(",");

}

}

}

System.out.println("{");

System.out.println("//以下是屬性定義");

printFields(c);

System.out.println("//以下是方法定義");

printMethods(c);

System.out.println("}");

} catch (ClassNotFoundException e) {

e.printStackTrace();

}

}

private static void printFields(Class c){

Field[] fs=c.getDeclaredFields();

for(int i=0;i<fs.length;i++){

System.out.print("\t");

System.out.print(Modifier.toString(fs[i].getModifiers())+" ");

System.out.print(fs[i].getType().getSimpleName()+" ");

System.out.println(fs[i].getName()+";");

}

}

public static void printMethods(Class c){

Method[] ms=c.getDeclaredMethods();

for(int i=0;i<ms.length;i++){

System.out.print("\t");

System.out.print(Modifier.toString(ms[i].getModifiers())+" ");

System.out.print(ms[i].getReturnType().getSimpleName()+" ");

System.out.print(ms[i].getName()+"(");

Class[] paras=ms[i].getParameterTypes();

for(int j=0;j<paras.length;j++){

System.out.print(paras[j].getSimpleName()+" arg"+j);

if(j<paras.length-1){

System.out.print(",");

}

}

System.out.print(")");

Class[] exceps=ms[i].getExceptionTypes();

if(exceps.length>0){

System.out.print(" throws ");

for(int k=0;k<exceps.length;k++){

System.out.print(exceps[k].getSimpleName());

if(k<exceps.length-1){

System.out.print(",");

}

}

}

System.out.println("{");

System.out.println("\t\t... ...");

System.out.println("\t}");

System.out.println();

}

}

}


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章