我已经实现了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);
}
如何避免这种交战...... 谢谢
答案 0 :(得分:2)
doInBackground()
方法签名是
protected String doInBackground(String... params)
它将变量参数作为参数,但是当您重写此方法时,如
protected String doInBackground(String[] strings)
传递String
数组而不是String
var args
此处编译器不会显示任何错误但会发出警告(正如您所说的警告)