现在的需求是想通过类型,方法名,和参数,运行相应方法的需求。
现在的问题是,目标的方法中如果为基本类型,或者是自定义的bean都可以正确取得。
1、但是当目标参数传入List<自定义Bean>的形式时就无法正常取出了,会报出找不到匹配方法的异常
2、如果我把参数改成“自定义Bean[]”是可正常取得方法的,但是invork却报参数类型错误
很困惑,请有此方面经验的大侠指点一下怎么解决
希望可以给个实现代码,本人理解有限

解决方案 »

  1.   


    package Test;import java.lang.reflect.Method;
    import java.util.ArrayList;
    import java.util.List;public class Test {
    public static void main(String[] args) throws Exception {
    Test test = new Test();
    A a = test.new A();
    a.setA("a");
    A b = test.new A();
    b.setA("b");
    A c = test.new A();
    c.setA("c");
    List<A> list = new ArrayList<A>();
    list.add(a);
    list.add(b);
    list.add(c);
    Class cls = Class.forName("Test.Test");
    Method m = cls.getMethod("show", List.class);
    m.invoke(test, list);
    }

    public void show(List<A> list){
    for(A a:list){
    System.out.println(a.getA());
    }
    }

    class A{
    private String a; public String getA() {
    return a;
    } public void setA(String a) {
    this.a = a;
    }

    }
    }
    能出来啊!