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()
。