0

这是我的 AsycTask

class LoadAsync extends
        AsyncTask<ArrayList<String>, Void, ArrayList<Float>> {
    private ProgressDialog mPd;

    @Override
    protected void onPreExecute() {
                     //do something
    }

    @Override
    protected ArrayList<Float> doInBackground(ArrayList<String>... params) {
                     //do something
    }

    @Override
    protected ArrayList<Float> doInBackground(ArrayList<String>... params) {
        return result;
    }

    @Override
    protected void onPostExecute(ArrayList<Float> scAnalysis) {
                     //do something
    }
}

我的 Activity 我执行 Asynctask 通过

ArrayList<String> arrInput = new ArrayList<String>();
    arrInput.add("var1");
    arrInput.add("var2");
    arrInput.add("var3");
    new LoadAsync().execute(arrInput);  //here display warning 

警告内容:类型安全:为可变参数 asynctask 执行创建了一个 ArrayList 的通用数组

我想删除这个警告..我该怎么做

4

1 回答 1

3

改变

ArrayList<String> arrInput = new ArrayList<String>();
    arrInput.add("var1");
    arrInput.add("var2");
    arrInput.add("var3");
    new LoadAnalysis().execute(arrInput);

new LoadAnalysis().execute("var1", "var2", "var3");

警告就会消失。

当然你也得改变

 AsyncTask<ArrayList<String>

 AsyncTask<String

您可以"var1", "var2", "var3",通过参数作为数组访问:

params[0] is "var1"

等等。查看varargs的文档

于 2013-08-28T08:42:42.033 回答