Integer ... idspublic 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 是什么东东呀

解决方案 »

  1.   

    ids  是个Integer 数组把
      

  2.   

    这个是java JDK1.5的新特性,叫做 可变参数。
    处理那参数就是处理数组一样
    这参数可以为0个或多个这类型的参数对象
      

  3.   

    是自动打包自动解包吧就是会自动转成int
      

  4.   


    出了2楼说的情况,也可以直接传送一个Integer的数组
      

  5.   

    java JDK1.5的新特性,叫做 可变参数
    简单说就是,你使用这个方法时,不管传入的数组的长度是多少,都可以调用这个方法。
      

  6.   

    JDK1.5之后的可变参数,由于JDK1.5之前都是用数组来表示,为了兼容JDK1.5之前的版本,可变参数内部还是会采用数组的形式来进行处理。
      

  7.   

    Integer ... ids表示实参可以是可变的列表,比如public static void main(String[] args) {
    fun(1,2);
    fun(1,2,3);
    }

    public static void fun(Integer... str){
    System.out.println(str.length);
    }将输出
    2
    3
      

  8.   

    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这三条记录,里面的参数个数可以使很多个的。
      

  9.   

    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+")";
    ....
    }