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

诡异的爪哇语法,求拯救:)
    public final AsyncTask<Params, Progress, Result> execute(Params... params) {
        return executeOnExecutor(sDefaultExecutor, params);
    }

Params... params
这货是神马?
总额可以编译通过?碉堡了:(


------解决方案--------------------
这种参数写法会根据你传入参数的数量封装为一个相应长度的数组,其效果和数组参数相同,但要求必须作为方法的最后一个参数。
另外这样写将可能在方法重载时混淆,如get(String...strs)和get(String str)在get("")时就导致参数类型不明确的问题,必须要写成get(new String[]{""})来表示调用的是前面的方法。
------解决方案--------------------
jdk1.5之后的新特性,可变参数。注意这个可变参数必须是在所有参数的最后一个才能定义。
------解决方案--------------------
可以理解为:Params[] params

------解决方案--------------------
 哥们喵的很搞笑
------解决方案--------------------
引用:
引用:
jdk1.5之后的新特性,可变参数。注意这个可变参数必须是在所有参数的最后一个才能定义。
喵的,可变参数有神马用?
为神马不放在ArrayList里呢?
喵的,这个不就是个可变长度参数么?

为了方便方法调用的。你用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);就是调用起来不方便罢了