反射工具类

InvokeUtils代码如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
package com.ksource.utils;
 
import org.apache.commons.collections4.MultiValuedMap;
 
import java.lang.reflect.Method;
import java.util.Collection;
 
/**
 * @Author dxy
 * @Date 2024/7/16 17:54
 * @Description
 */
public class InvokeUtils {
 
    public static void main(String[] args) throws Exception{
        Object[] paramArr = new Object[]{"lxi",12};
        Class<?> clazz = Class.forName("com.ksource.utils.TestJava");
        Object result = invokeMethod(clazz, paramArr, "a2");
        System.out.println(result);
    }
 
    public static Object invokeMethod(Class clazz, Object[] paramArr, String methodName){
        try {
            MultiValuedMap<String, Class<?>[]> methodMultimap = ParamUtils.getMethodInfo(clazz.getName());
            Collection<Class<?>[]> classList = methodMultimap.get(methodName);
            Class<?>[] clazzList = null;
            for (Class<?>[] elements : classList) {
                if(paramArr.length == elements.length){
                    clazzList = elements;
                }
            }
            Method method = clazz.getMethod(methodName, clazzList);
            Object result = method.invoke(clazz.newInstance(), paramArr);
            return result;
        }catch (Exception e){
            e.printStackTrace();
        }
        return null;
    }
}

  

posted @   岁月淡忘了谁  阅读(9)  评论(0编辑  收藏  举报
(评论功能已被禁用)
相关博文:
阅读排行:
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
历史上的今天:
2014-07-17 中国天气网 JSON接口的城市编码解析及结果
2014-07-17 Java解析XML汇总(DOM/SAX/JDOM/DOM4j/XPath)
2014-07-17 一个java解析xml的简单例子
2014-07-17 MyEclipse8.5 无法安装ADT解决办法
2014-07-17 MyEclipse9,MyEclipse10 安装ADT
点击右上角即可分享
微信分享提示