不应重新分配Android小部件和变量

时间:2017-09-15 18:53:58

标签: java android lint

Sonar Lint指出我应该引入一个新变量,而不是重用参数。

在我的extendedListView适配器中

 @Override
  public View getGroupView(... , View convertView , ...){
     if(convertView == null){
         // gets the layoutInflater
         convertView = inflater.inflate(R.layout.group_item, parent, false);
     }
     // then all the fill the list with data stuff
     return convertView;

  }

声纳提出了一个很好的观点,我认为我应该做点其他事情,但我不知道在这种情况下可以做些什么。我需要检查convertView是否为null或者我每次都会替换它,但同时错误在任何标准java代码中都有意义,而不是在我的小部件内部。我该如何解决这个问题?

1 个答案:

答案 0 :(得分:1)

我实际上没有看到您当前的代码有任何问题。但是,如果你想避免这个警告,你可以假装你的方法args final 并执行以下操作......

@Override
public View getGroupView(... , View convertView , ...){
  View myView = convertView;
  if(myView == null){
    // gets the layoutInflater
    myView = inflater.inflate(R.layout.group_item, parent, false);
  }
  // then all the fill the list with data stuff
  return myView;
}

你的linter正在标记代码样式领域的东西。 PMD还在类似场景中标记代码。通常,我希望getView(...)方法非常简洁,所以我不希望重复使用该变量会造成任何混淆。