Java 反射reflex(2)

来源:互联网 发布:淘宝导航栏尺寸 编辑:程序博客网 时间:2024/06/06 13:18
public class DroidTest2 {/** * @desc <pre> * </pre> * @author Weiliang Hu * @date 2013-9-10 * @param args */public static void main(String[] args) {        Droid mDroid4=null;        Class<?>clazz=null;        try {clazz=Class.forName("cn.iworker.reflex.Droid");} catch (ClassNotFoundException e) {e.printStackTrace();}        Constructor<?>cons[]=clazz.getConstructors();                for (int i = 0; i < cons.length; i++) {            Class<?> p[]=cons[i].getParameterTypes();//获取参数            System.out.print("构造方法:  ");            int mo=cons[i].getModifiers();            System.out.print(Modifier.toString(mo)+" ");//获取构造函数的修饰符            System.out.print(cons[i].getName());//获取构造函数的名字            System.out.print("(");            for(int j=0;j<p.length;++j){                System.out.print(p[j].getName()+" arg"+i);//获取参数的类型信息                if(j<p.length-1){                    System.out.print(",");                }            }            System.out.println("){}");        }                System.out.println("-------------本类属性------------");        // 取得本类的全部属性        Field[] field = clazz.getDeclaredFields();        for (int i = 0; i < field.length; i++) {            // 权限修饰符            int mo = field[i].getModifiers();            String priv = Modifier.toString(mo);            // 属性类型            Class<?> type = field[i].getType();            System.out.println(priv + " " + type.getName() + " "                    + field[i].getName() + ";");        }        System.out.println("-----------实现的接口或者父类的属性-----------");        // 取得实现的接口或者父类的属性        Field[] filed1 = clazz.getFields();        for (int j = 0; j < filed1.length; j++) {            // 权限修饰符            int mo = filed1[j].getModifiers();            String priv = Modifier.toString(mo);            // 属性类型            Class<?> type = filed1[j].getType();            System.out.println(priv + " " + type.getName() + " "                    + filed1[j].getName() + ";");        }                }}

构造方法:  public cn.iworker.reflex.Droid(int arg0,java.lang.String arg0,java.lang.String arg0){}构造方法:  public cn.iworker.reflex.Droid(int arg1){}构造方法:  public cn.iworker.reflex.Droid(){}-------------本类属性------------private int year;private java.lang.String country;private java.lang.String name;-----------实现的接口或者父类的属性-----------