反射_Class对象功能_获取method
Method:方法对象
执行方法
Object invoke(Object obj, Object.... args)
获取方法名称
String getName:获取方法名
代码实现:
//获取Person的Class对象 Class personClass = Person.class; //获取指定名称 Method method = personClass.getMethod("eat"); Person person = new Person(); //执行方法 method.invoke(person);
Method eat = personClass.getMethod("eat", String.class);
//执行方法
eat.invoke(person,"饭");
System.out.println("-----------");
//获取所有public修饰的方法
Method[] methods = personClass.getMethods();
for (Method method1 : methods) {
System.out.println(method1);
String name = method1.getName();
System.out.println(name);
}
String name = personClass.getName();
System.out.println(name);
反射案例
需求:
写一个框架,可以帮助我们创建任意的对象,并且执行其中任意方法
代码:
创建一个properties文间


代码实例:
//加载配置文件 //创建properties Properties properties = new Properties(); //加载配置文件,转换为一个集合 //获取class目录下的配置文件 ClassLoader classLoader = ReflectTest.class.getClassLoader(); InputStream resourceAsStream = classLoader.getResourceAsStream("pro.properties"); properties.load(resourceAsStream); //获取配置文件中定义的数据 String className = properties.getProperty("className"); String methodName = properties.getProperty("methodName"); //加载该类进内存 Class aClass = Class.forName(className); //创建对象 Object o = aClass.newInstance(); //获取方法对象 Method method = aClass.getMethod(methodName); //执行方法 method.invoke(o);
浙公网安备 33010602011771号