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代码中都有意义,而不是在我的小部件内部。我该如何解决这个问题?
答案 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(...)
方法非常简洁,所以我不希望重复使用该变量会造成任何混淆。