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

去除可变参数中的一个参数
在String... ids 这个2个参数中有3个值分别是1,2,3 我想买其中的一个参数去除掉怎么做?有人或许会说用list来去除,但是用list去除后怎么把list变成原来的可变参数???
可变参数?list

------解决方案--------------------
String ... ids和String[] ids一样都是数组。在初始化的时候长度已经定了。所以只能新开辟空间,重新定义一个数组,然后再重新赋值。
public void say(String ... ids){
    String[] newIds = new String[2];
    System.arraycopy(ids, 0, newIds, 0, newIds.length);
    ids = newIds;
    // TODO
}
------解决方案--------------------
既然叫参数,那就该明白所谓可变只是针对当前参数定义而言。
另外纠正一个错误,这不是可变数组,ids在运行时是定长的。

所以调用say方法的时候直接把数组传过去就行,无论你传递的参数是有2位还是3位。