public final AsyncTask<Params, Progress, Result> execute(Params... params) {
        return executeOnExecutor(sDefaultExecutor, params);
    }Params... params
这货是神马?
总额可以编译通过?碉堡了:(

解决方案 »

  1.   

    这种参数写法会根据你传入参数的数量封装为一个相应长度的数组,其效果和数组参数相同,但要求必须作为方法的最后一个参数。
    另外这样写将可能在方法重载时混淆,如get(String...strs)和get(String str)在get("")时就导致参数类型不明确的问题,必须要写成get(new String[]{""})来表示调用的是前面的方法。
      

  2.   

    jdk1.5之后的新特性,可变参数。注意这个可变参数必须是在所有参数的最后一个才能定义。
      

  3.   

    可以理解为:Params[] params
      

  4.   

    喵的,可变参数有神马用?
    为神马不放在ArrayList里呢?
    喵的,这个不就是个可变长度参数么?
      

  5.   

    为了方便方法调用的。你用ArrayList当然可以。就是调用的时候,是不是要先new ArrayList然后再用这个list把参数都add进去这个麻烦了点。可变参数就是可以直接在调用方法的时候传或不传参数都行
    例如你这个例子调用的时候就可以execute(param1, param2, param3)还可以不传execute();
    如果你用List作为参数的话不是调用起来麻烦了点吗,调用方法之前要做这些个步骤
    List list=new ArrayList();
    list.add(param1);
    list.add(param2);
    list.add(param3);
    execute(list);不传参数的话又得用execute(null);就是调用起来不方便罢了
      

  6.   

    可变参数仅仅是为了方便么?
    喵的,把java弄复杂了呢:(