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/