【BigData】Java基础_反射(操作对象、方法) 代码实现

【BigData】Java基础_反射中只是对对象实现了反射,但是在我们实际的编程中,一个类中可能会存在很多个方法,那么当我们的方法没写好的时候,我们调用的时候就会受到牵制,所以与类一致,方法上也可以使用反射,这样就可以一劳永逸。

package cn.test.logan.day10.reflect;

import java.lang.reflect.Method;

public class TestPerson {
    public static void main(String[] args) throws Exception {
        /**
         * 以下参数可以写在文件中,从文件中动态读取,此处为了简便,就从Eclipse工具输入
         */
        String className = args[0]; //要实例化的类名
        String methodName = args[1]; //要调用的方法名
        Class<?> pclass = Class.forName(args[2]);//    方法的参数类型
        String foodName = args[3]; // 调方法时,传入的参数值
        
        Class<?> forName = Class.forName(className);
        Person p =(Person)forName.newInstance();
        
        //从forName这个模板中获取方法
        Method method = forName.getMethod(methodName,pclass);
        
        // 将method在对象是执行
        Object invoke = method.invoke(p, foodName);
        System.out.println(invoke);
    }
}

 说明:执行以上方法需要使用Run as -->>Run configurations

【BigData】Java基础_反射(操作对象、方法)
代码实现

执行结果为:

【BigData】Java基础_反射(操作对象、方法)
代码实现