反射机制
它允许运行中的 Java 程序对自身进行检查,或者说“自审”,并能直接操作程序的内部属性。利用class进行反编译,查询java原始文件的数据。Method method=getClass().getMethod(String name,方法参数);//通过反射找到对应方法 method.invoke(对象,方法参数); public void name(Object... obj){}//动态参数 参数内部使用数组 Class class=ClassforName("类名地址");//获取class方法一 Area a=new Area;//创建对象 Class class=a.getClass();//获取class方法二 Class class=Area.Class();//获取class方法三 Modifier.toString(class.getModifiers());//获取类的修饰符 class.getName();//获取类全路径 class.getSimpleName();//只获取类名 //获取类里面的变量 for (Field field : clas.getDeclaredFields()) { //获取当前属性的修饰符 System.out.print(Modifier.toString(field.getModifiers())+" "); //获取当前属性的类型 System.out.print(field.getType().getSimpleName()+" "); //获取属性名 System.out.println(field.getName()); }; //获取类里面的方法 for (Method method : clas.getDeclaredMethods()) { //返回方法的修饰符 System.out.print(Modifier.toString(method.getModifiers())+" "); //返回方法的返回类型 System.out.print(method.getReturnType().getSimpleName()+" "); //返回方法的方法名 System.out.print(method.getName()+" ("); //获取方法的参数 for (Parameter param : method.getParameters()) { //获取参数的类型 System.out.print(param.getType().getSimpleName()+" "); //参数名 System.out.print(param.getName()+" , "); } System.out.println(")"); } System.out.println(); //执行方法 Object调用的对象 arg0方法执行所需的参数 //method.invoke(Object,arg0...); //通过反射创建对象 Object o = clas.newInstance(); //获取构造函数 for (Constructor cons : clas.getConstructors()) { //返回方法的修饰符 System.out.print(Modifier.toString(cons.getModifiers())+" "); //返回方法名 System.out.print(cons.getName()+" "); //获取方法的参数 for (Parameter param : cons.getParameters()) { //获取参数的类型 System.out.print(param.getType().getSimpleName()+" "); //参数名 System.out.print(param.getName()+" , "); } //执行构造方法 可以带参数 参数是动态参数 //Object o = cons.newInstance(initargs) System.out.println(); }; //获取当前类实现过哪些接口 Class [] classes = clas.getInterfaces(); //获取当前类继承过哪个类 Class cl = clas.getSuperclass(); //包名 Package pack = clas.getPackage();