可变参数是否可以传入数组,若不能怎么解决,请大神帮忙出个点子

public class runnethod {
public static void setProperty(Object obj,String property,Object...values)throws Exception{
Class clazz=obj.getClass();
Class[] values_class=new Class[values.length];
for(int i=0;i<values.length;i++){
values_class[i]=values[i].getClass();
}
Method mtd=clazz.getMethod("set"+property,values_class);
mtd.invoke(obj,values);
}
public static void main(String[] args) {
System.out.println("hello world");
}
}

class student{
private String name;
private int age;

public void setName(String name,int age){
this.name=name;
this.age=age;
}

public void setName(String name){
this.name=name;
}

public void setAge(int age){
this.age=age;
}

public String getName(){
return name;
}

public int getAge(){
return age;
}
}

--来自移动客户端
已邀请:

admin

赞同来自:

如果只传一个数组参数的话,系统会自动将数组的每一项对应到可变参数的每一项。
解决办法是:不要只传递一个数组参数:
public class Test {

    public static void main(String[] args) {
        new Test().T(new String[]{"1","2"},new String[]{"1","2"});

    }
    private void T(Object... args){
        System.out.println(args[0]);
    }

}

 

--来自网页客户端

czx663 - 业余爱好者

赞同来自:

我没表达清楚。用你这个例子来说。我想问的T是函数里调用了两个函数A和B,假如A接受Object 对象类型可变参数,而B接受Object对象所对应的Class对象类型可变参数。我传给T函数的是Object对象类型可变参数,该如何给B函数传递参数。

--来自移动客户端

要回复问题请先登录注册

Template error, template file not found