去除可变参数中的一个参数
在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位。