java ....什么意思啊
Integer ... ids
public void deleteall(Integer ... ids) {
if (ids.length > 0) {
StringBuffer sb = new StringBuffer();
for (Integer id : ids) {
sb.append("?").append(",");
sb.deleteCharAt(ids.length);
}
SQLiteDatabase data = db.getWritableDatabase();
data.execSQL("delete from coursetime where id in(" + sb.toString() + ")", (Object[])ids);
data.close();
}
}
----------------
请问这里的Integer ... ids 是什么东东呀
------解决方案-------------------- ids 是个Integer 数组把
------解决方案-------------------- 这个是java JDK1.5的新特性,叫做 可变参数。
处理那参数就是处理数组一样
这参数可以为0个或多个这类型的参数对象
------解决方案-------------------- 是自动打包自动解包吧就是会自动转成int
------解决方案-------------------- 探讨 这个是java JDK1.5的新特性,叫做 可变参数。 处理那参数就是处理数组一样 这参数可以为0个或多个这类型的参数对象
------解决方案-------------------- java JDK1.5的新特性,叫做 可变参数
简单说就是,你使用这个方法时,不管传入的数组的长度是多少,都可以调用这个方法。
------解决方案-------------------- JDK1.5之后的可变参数,由于JDK1.5之前都是用数组来表示,为了兼容JDK1.5之前的版本,可变参数内部还是会采用数组的形式来进行处理。
------解决方案-------------------- Integer ... ids表示实参可以是可变的列表,比如
Java code
public static void main(String[] args) {
fun(1,2);
fun(1,2,3);
}
public static void fun(Integer... str){
System.out.println(str.length);
}
------解决方案-------------------- public void deleteall(Integer ... ids) { } 相当于 public void deleteall(Integer id1,Integer id2,Integer id3){ } 其中(Integer id1,Integer id2,Integer id3)这些参数个数是可变的,你这个方法如果执行deleteall(1,2)则表示删除id为1和2两条记录,如果执行(3,4,5)则表示删除id为3、4和5这三条记录,里面的参数个数可以使很多个的。
------解决方案-------------------- public static void deleteall(Integer ... ids){ String s=""; for(Integer id:ids){ s+=id+","; } if(!s.equals("")) s=s.substring(0, s.lastIndexOf(",")); String sql="delete from table where id in ("+s+")"; .... }
------解决方案-------------------- 上面的方法就是你所要的操作了
------解决方案-------------------- 增强型for循环