请问
我有两个类 分别是 test1,test2test1中有3个属性
private int A1;
private int A2;
private int A3;test1中有6个方法
public void setA1(int val){
    A1 = val;    
}
public int getA1(){
    return A1;
}public void setA2(int val){
    A2 = val;    
}
public int getA2(){
    return A2;
}public void setA3(int val){
    A3 = val;    
}
public int getA3(){
    return A3;
}test2 中有3个方法
public int getResult1(){
    return 1;
}public int getResult2(){
    return 2;
}public int getResult3(){
    return 3;
}
 
请问我怎么实现在test1和test2都已经new成 o1和o2后,如何循环的来设置值,意思如下
for(int i = 1; i <= 3; i++) {
    o1.setAi(o2.getResulti);
}而不需要 一个一个的写,请问如何通过 Class和Method类的方法来实现

解决方案 »

  1.   

    运用反射得到class method的数组,然后for循环中i<method.length试一下
      

  2.   

    麻烦你具体一点好吗,写个完整的程序好吗
    我自己粗写了一下 没有编译过,不知道对不对?
    public void setActiveFormData(Object o1,Object o2,String className,String setMethodNamePrev,String getMethodNamePrev,int loopNum) {
                
            Class c1 = o1.getClass();
            Method[] setMethodArr = c1.getMethods();
            
            Class c2 = o2.getClass();
            Method[] getMethodArr = c2.getMethods();
            
            int len1 = setMethodArr.length;
            int len2 = getMethodArr.length;
            
            for(int i = 0; i < loopNum; i++) {
                for( int j = 0; j < len1; j++) {
                    if(setMethodArr[j].getName().equals(setMethodNamePrev + i)) {
                        for( int k = 0; j < len2; k++) {
                            if(m[k].getName().equals(getMethodNamePrev + i)) {
      ////////// // 这儿的的参数如何传进去呢????                            o1.setMethodArr[j](o2.methodArr[k]);                        }
                            break;
                        }
                    }
                }
            }
        }
      

  3.   

    public class TestMethod
    {
        public TestMethod()
        {
        }
        
        public void print1()
        {
            System.out.println("aaa");
        }
        
        
        
        public static void main(String[] args) throws Exception
        {
            TestMethod test = new TestMethod();
            
            Method method = null;
            
            int i =1;
            method = test.getClass().getMethod("print" + i, null);
            
            method.invoke(test,null);
        }
    }
      

  4.   

    ////////// // 这儿的的参数如何传进去呢????    o1.setMethodArr[j](o2.methodArr[k]);set方法的参数如何传呢 能在我的那个例子上进行 编码吗 非常谢谢!!!!!!
      

  5.   

    请遵照java和javabean的规范来写你的程序吧,然后你就可以用apache的BeanUtils的方法来实现你想要的
      

  6.   

    ////////// // 这儿的的参数如何传进去呢????
    ====================================================
     在我上面的代码里面的
     method.invoke(test,null);改为method.invoke(test,new Object[]{param1,param2...});