反射

it2022-05-05  146

每个类对象中都有隐藏的class类

通过一个约定俗成的方法进行获得该类,平且创建类的方法,获得该对象,获得该方法,调用该方法进行使用该方法

public static void main(String[] args) throws Exception{ Class c = Class.forName("com.zsh.reflect.A");//获得类对象 Method method = c.getMethod("print", new Class[] {});//获得无参方法 //或者Method method = c.getMethod("print");//获得无参方法 Constructor constructor = c.getConstructor();//获得构造函数 Object object = c.newInstance();//创建该类的对象实例 //object 类是所有类的父类,包括Class类 method.invoke(object, new Object[]{});//调用无参的print方法

怎么运用反射

要获取类的信息,首先要获取类的类类型(类信息eg:类名、类方法、类成员变量、类构造函数等等)

【1】获取类的名称:c.getName()

【2】获取类的方法:Method[]  ms = c.getMethods;// 或 c.getDeclaredMethods()

【3】获取方法的返回值类型的类类型:Class returnType = ms[i].getReturnType(); returnType.getName();         获取方法名称:ms[i].getName()         获取参数类型(即参数列表的类型的类类型)Class[] paramTypes = ms[i].getParameterTypes();                                                                                 for(Class class1:paramTypes){ class1.getName();}

原文:https://blog.csdn.net/zhsihui429/article/details/86620830

转载于:https://www.cnblogs.com/liudezhi/p/11175308.html


最新回复(0)