Android AsyncTask,警告:“为varargs参数创建未经检查的泛型数组”

时间:2016-05-03 13:23:18

标签: java android android-asynctask

如何摆脱警告?我正在使用的代码:

private void tryNew(List<Something> somethingList){
    new AsyncTask<List<Something>,Void,Void>(){
        @Override
        protected Void doInBackground(List<Something> [] somethingList) {
            //some code
            return null;
        }
    }.execute(somethingList);
}

2 个答案:

答案 0 :(得分:4)

我遇到了同样的警告,可以通过使用我在execute方法的参数上使用的对象来删除它,而不是泛型。 对不起我的英语不好,但我会尝试更好地解释。

而是以这种方式创建我的AsyncTask:

new AsyncTask<MyObject<GenericsInsideGenerics>, Void, Void>...

我是这样创造的:

new AsyncTask<MyObject, Void, Void>...

它工作正常!

答案 1 :(得分:1)

如果要删除警告消息,则必须使用指定的AsyncTask变量。

private void tryNew(List<Something> somethingList){
    new AsyncTask<Something,Void,Void>(){
        @Override
        protected Void doInBackground(Something.. s) {
            //some code
            return null;
        }
    }.execute(somethingObject1, somethingObject2, somethingObject3);
}