Method[] methods=c.getDeclaredMethods();获取所有的方法
Method method=c.getDeclaredMethod("f方法名",参数类型.class,......);获取某一个具体的方法;
Object obj=method.getReturnType();
获取该方法的返回类型;
Object [] params=method.getParameTypes();获取该方法传入的参数;
Method[] methodConstructors=c.getDeclaredConstructors();获取所有的构造方法;
Method constructors=c.getDeclaredConstructor(参数类型.class,....);获取特定的构造方法
Object result=method.invoke(c,要执行方法的参数,。。。。);执行该方法,返回执行的结果
Method[] methods=c.getDeclaredMethods();获取所有的方法
Method method=c.getDeclaredMethod("f方法名",参数类型.class,......);获取某一个具体的方法;
Object obj=method.getReturnType();
获取该方法的返回类型;
Object [] params=method.getParameTypes();获取该方法传入的参数;
Method[] methodConstructors=c.getDeclaredConstructors();获取所有的构造方法;
Method constructors=c.getDeclaredConstructor(参数类型.class,....);获取特定的构造方法
Object result=method.invoke(c,要执行方法的参数,。。。。);执行该方法,返回执行的结果
c.getSuperclass();获取某类的父类;
c.getInterfaces();获取某类实现的接口;
java反射机制是程序在运行时动态加载类的属性和方法
有三种加载类的方法
第一种
Class c1=Class.forName("类名");
第二种
Class c2=类名.class;
第三种
Class c3=对象名.getClass();
获取类中的一些属性
Object obj=c.newInstance();创建一个实例,调用的是c中的无参构造方法
Field[] fs=c.getDeclareFields();获取clei中所有的属性
Fields f= c.getDeclareFields("属性名");获取某个属性
f.setAccessible(true);打破封装,使该属性具有可操作性;
f.set(对象名,“属性值”);给该对象设置属性
获取类中的方法
Method[] methods=c.getDeclaredMethods();获取所有的方法
Method method=c.getDeclaredMethod("f方法名",参数类型.class,......);获取某一个具体的方法;
Object obj=method.getReturnType();
获取该方法的返回类型;
Object [] params=method.getParameTypes();获取该方法传入的参数;
Method[] methodConstructors=c.getDeclaredConstructors();获取所有的构造方法;
Method constructors=c.getDeclaredConstructor(参数类型.class,....);获取特定的构造方法
Object result=method.invoke(c,要执行方法的参数,。。。。);执行该方法,返回执行的结果
c.getSuperclass();获取某类的父类
c.getInterfaces();获取某类实现的接口