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;-----------实现的接口或者父类的属性-----------