日期:2014-05-20  浏览次数:20591 次

一个可变参数的问题



为什么加一个参数后,这三种获得实例方法
Cat cat=c.newInstance("小白",new Object[]{new String[]{"鱼","老鼠"}});
Cat cat=c.newInstance("小白",new String[]{"鱼","老鼠"});
Cat cat=c.newInstance("小白",(Object)(new String[]{"鱼","老鼠"}));
为什么第一个与第二个行,但三个不行
Cat cat=c.newInstance(new String[]{"鱼","老鼠"});
Cat cat=c.newInstance((Object)(new String[]{"鱼","老鼠"}));
Cat cat2=c.newInstance(new Object[]{new String[]{"鱼","老鼠"}});
这个为什么第一个不行,后两个行。

为什么传递一个数组参数的时候会打散成字符串传入,,而多加了一个参数不会打散那

------解决方案--------------------
跟你获取的构造函数有关,clazz.getConstructor(String[].class);你这个限定死了。