Varargs方法警告

时间:2017-03-11 03:29:49

标签: android suppress-warnings

我在异步任务中有这个doInBackground,我收到了这个Vargas警告:

  

Varargs方法应该只覆盖或被其他varargs方法覆盖,这与RingBankAsyncTask.doInBackground(String [])和AsyncTask.doInBackground(String ...)

不同
   protected String doInBackground(String[] urls){
   String result = "";
   for (int i = 0; i <= 0; i++){
     result = invokePost(urls[i], this.postData);
   }
   return result;
 }

我知道为什么我会收到这个警告,但有没有解决方法来摆脱这个!?

1 个答案:

答案 0 :(得分:2)

变化

protected String doInBackground(String[] urls)

protected String doInBackground(String... urls)

varargs意味着不同长度的参数,所以尽管你在接收端使用它就像一个数组,你提供如下的参数(如果你手动调用方法):

doInbackground(val1, val2, val3);

VS

doInbackground(new String[] { val1, val2, val3 });

作为一项规则,您可以在覆盖方法时始终查看超类型,以确保您匹配它的签名,以及其他许多其他有用的问题。只需确保安装了源代码。