像arargs方法一样的Android asynctask warring应该只覆盖或被其他varargs方法覆盖

时间:2014-01-22 06:32:55

标签: java android android-asynctask

我已经实现了Android异步任务类,这里是重写的doInBackground(String[])方法,但是代码工作正在收到警告,如

Varargs methods should only `override` or be overridden by other `varargs` methods unlike new `JSONTask(){}.doInBackground(String[])` and `JSONTask.doInBackground(String...)`

JSONTask类

public class JSONTask extends AsyncTask<String, Void, String> {

    @Override
    protected void onPreExecute() {
        super.onPreExecute();
    }

    @Override
    protected String doInBackground(String... params) {
        ///String mJsonString =  doing my stuff..................

        return mJsonString;
    }

    }

我有两个类ClassA和ClassB,我在两个类中都使用了JSONTask我有覆盖doInBackground()方法,但代码工作正常但是显示像warring一样     与新的JSONTask(){}。doInBackground(String [])和JSONTask.doInBackground(String ...)不同,Varargs方法只应覆盖或覆盖其他varargs方法。

ClassA代码

class ClassA
    {

    new JSOnTask()
    {
    @Override
    protected void onPreExecute() {
        super.onPreExecute();
    }

    @Override
    protected String doInBackground(String... params) {
        ///String mJsonString =  doing my stuff..................

        return mJsonString;
    }
        protected void onPostExecute(String result) {
        }


    }.execute(params);
    }

ClassB代码

class ClassB
    {

    new JSOnTask()
    {
    @Override
    protected void onPreExecute() {
        super.onPreExecute();
    }

    @Override
    protected String doInBackground(String... params) {
        ///String mJsonString =  doing my stuff..................

        return mJsonString;
    }
        protected void onPostExecute(String result) {
        }


    }.execute(params);
    }

如何避免这种交战...... 谢谢

1 个答案:

答案 0 :(得分:2)

doInBackground()方法签名是

protected String doInBackground(String... params)

它将变量参数作为参数,但是当您重写此方法时,如

protected String doInBackground(String[] strings)

传递String数组而不是String var args

此处编译器不会显示任何错误但会发出警告(正如您所说的警告)