Java Android异步任务,警告:“;为varargs参数“创建未选中的泛型数组”;

Java Android异步任务,警告:“;为varargs参数“创建未选中的泛型数组”;,java,android,android-asynctask,Java,Android,Android Asynctask,我怎样才能摆脱这个警告呢?我正在使用的代码: private void tryNew(List<Something> somethingList){ new AsyncTask<List<Something>,Void,Void>(){ @Override protected Void doInBackground(List<Something> [] somethingList) {

我怎样才能摆脱这个警告呢?我正在使用的代码:

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);
}
private void tryNew(列出某些内容列表){
新建异步任务(){
@凌驾
受保护的Void doInBackground(列表[]某物列表){
//一些代码
返回null;
}
}.执行(某物清单);
}

如果要删除警告消息,则必须使用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);
}
private void tryNew(列出某些内容列表){
新建异步任务(){
@凌驾
受保护的空白背景(某物){
//一些代码
返回null;
}
}.执行(somethingObject1、somethingObject2、somethingObject3);
}

我也遇到了同样的警告,只需在execute方法的参数上使用对象,而不使用泛型,就可以删除它。 对不起,我的英语不好,但我会尽力解释得更好

而是通过以下方式创建我的异步任务:

new AsyncTask<MyObject<GenericsInsideGenerics>, Void, Void>...
new AsyncTask<MyObject, Void, Void>...
新建异步任务。。。
我是这样创造的:

new AsyncTask<MyObject<GenericsInsideGenerics>, Void, Void>...
new AsyncTask<MyObject, Void, Void>...
新建异步任务。。。

而且效果很好

List
包装在一个非泛型的对象中,比如
class Foo{public List;}
并使用
AsyncTaskLate addition,但值得注意的是,在将
@SafeVarargs
添加到
doInBackground
中时是可能的(并有助于消除相关的警告消息-
可能来自参数化vararg类型的堆污染
),它不会删除原始的“未检查的泛型”警告,因为您不会直接调用
doInBackground
。您可以使用
新建异步任务(…).execute()