【Java/Reflection】使用Java反射技术调用对象指定函数的方法

反射提供了从设定文本到执行代码间的顺畅通道,某些场合使用能事半功倍。

下文提供了使用Java反射技术调用对象指定函数的方法,仅供参考。

【代码】

package com.hy.lab;

import java.lang.reflect.Constructor;
import java.lang.reflect.Method;

public class ReflectTest {
    public int sum(String prompt,int[] args){
        int result=0;

        for(int item:args){
            result+=item;
        }

        System.out.println(String.format("%s=%d",prompt,result));
        return result;
    }

    public static void main(String[] args) throws Exception{
        // 由类全路径得到类
        Class clz = Class.forName("com.hy.lab.ReflectTest");
        // 得到无参构造函数
        Constructor constructor=clz.getConstructor();
        // 由构造函数生成实例
        Object instance=constructor.newInstance();
        // 反射得到方法
        Method method = clz.getMethod("sum", new Class[]{String.class,int[].class});
        int[] params=new int[]{1,2,3,4,5};

        // 调用实例的方法
        Object result = method.invoke(instance, new Object[]{"Sumary",params});
    }
}

【输出】

Sumary=15

END

posted @ 2022-03-16 11:47  逆火狂飙  阅读(338)  评论(0)    收藏  举报
生当作人杰 死亦为鬼雄 至今思项羽 不肯过江东