【发布时间】:2016-05-03 13:23:18
【问题描述】:
如何消除警告?我正在使用的代码:
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);
}
【问题讨论】:
-
将
List<Something>包裹在一个不像class Foo { public List<Something> list; }这样的通用对象中并使用AsyncTask<Foo, ...- 解决它 - 或者干脆忽略它 - stackoverflow.com/questions/3096708/java-generics-and-varargs 有一些关于它的细节 - 如果您的目标是 19+ 您可以尝试将@SafeVarargs添加到doInBackground方法 -
延迟添加,但值得注意的是,虽然将
@SafeVarargs添加到doInBackground是可能的(并且有助于消除相关的警告消息 -Possible heap pollution from paramaterized vararg type),但它不能 i> 删除原来的“unchecked generics”警告,因为你不直接调用doInBackground。你使用new AsyncTask(...).execute()。
标签: java android android-asynctask