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

标签 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;

  }

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

最佳答案

我实际上没有发现您当前的代码有任何问题。但是,如果您想避免该警告,您可以假装您的方法参数是 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(...) 方法非常简洁,因此我不希望变量的重用引起任何混淆。

关于java - 不应重新分配 Android 小部件和变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46245879/

相关文章:

android - 这个 Android Lint 是什么意思 : "Wrong orientation?"

c++ - 精度损失(赋值)

java - 使用哈希表的更好方法? java

java - 如何在 JAX-WS 中正​​确指定 wsdl 位置?

java - 非 volatile 双重检查锁定,这可能吗?

java - 将字符串输入转换为对象名称的实例(=输入)

android - FLAG_ACTIVITY_REORDER_TO_FRONT 被忽略

android - 多个电话/设备之间的通信

android - 如何使用 intent startactivityforresult 方法?

java - 如何使用lint4j插件进行Gradle构建以及如何为Jenkins配置它?