反射机制

它允许运行中的 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();