wild84 2017-04-12 03:05 采纳率: 81.8%
浏览 1755
已采纳

java使用反射调用类方法

我现在的程序如下:

 public class Ob {
    private String classPath;
    private String methodName;
    private Map<String, Object> para;

}
class Demo2 {
    public void print(String string) {
        System.out.print(string+"demo2");
    }
}
class Demo {
    public void print(String string,int i) {
        System.out.print(string+i+"demo1");
    }
}

我想编写一个方法:它接收ob对象,根据ob对象的属性反射调用其他类的方法,调用的实参由ob的para获得. 我想到的是使用map设置实参,或者你有更好的办法也可以.
请问如何实现?可以帮我完成这个demo么?

  • 写回答

5条回答 默认 最新

  • 吾日三省Java 2017-04-12 11:22
    关注

    public static void main(String[] args) throws Exception {
    // Ob ob = new Ob("test.pd.Demo2","print","hahaha");
    Ob ob = new Ob("test.pd.Demo","print","hahaha",25);
    Class<?> cal = Class.forName(ob.getClassPath());
    System.out.println("cal:"+cal);
    Object[] params = ob.getPara();
    List> cals = new ArrayList>(params.length);
    for (Object param : params) {
    cals.add(param.getClass());
    }
    Method method = cal.getMethod(ob.getMethodName(),cals.toArray(new Class[]{}));
    System.out.println(method);
    method.invoke(cal.newInstance(),params);
    }

    注意:将public void print(String string,int i)修改为public void print(String string,Integer i)
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(4条)

报告相同问题?

悬赏问题

  • ¥15 multisim设计求解如图
  • ¥15 动态多目标优化,求解定义的问题的POF和POS公式
  • ¥30 实验 :UML2.0 行为建模
  • ¥15 设计一种优化调度算法并结合论文中的案例给出调度计划
  • ¥15 py文件打包exe报错TypeError:expected str,bytes or os.PathLike object,not_io.BytesIO
  • ¥15 Java编写学籍信息管理系统
  • ¥15 IPXE网刻客户机找不到服务端
  • ¥15 小贝360-4 配二个 华772S 设置WⅰFi5G 连接
  • ¥15 vs2022的QT报错,好像是缺少winextras
  • ¥15 怎么看 cst中一个面的功率分布图