Android SonarLint:删除不必要的布尔文本
我已在SearchView中设置:Android SonarLint:删除不必要的布尔文本,android,kotlin,sonarlint,Android,Kotlin,Sonarlint,我已在SearchView中设置: setOnQueryTextListener(object : SearchView.OnQueryTextListener { override fun onQueryTextSubmit(query: String) = false override fun onQueryTextChange(newText: String): Boolean { filterSet.apply { clear()
setOnQueryTextListener(object : SearchView.OnQueryTextListener {
override fun onQueryTextSubmit(query: String) = false
override fun onQueryTextChange(newText: String): Boolean {
filterSet.apply {
clear()
addAll(searchSet.filter {
if (newText.isEmpty()) true
else it.name.contains(newText, true)
})
}; return false
}
}
Sonarint说true
(在else
之前)是不必要的,为什么?
还有什么办法呢?您不需要在筛选器中包含if和else,您的代码可以如下所示: //换行
if (newText.isEmpty()) true
else it.name.contains(newText, true)
setOnQueryTextListener(object : SearchView.OnQueryTextListener {
override fun onQueryTextSubmit(query: String) = false
override fun onQueryTextChange(newText: String): Boolean {
searchSet.filter { newText.isEmpty() || it.name.contains(newText, true) }
return false
}
}
//换行
if (newText.isEmpty()) true
else it.name.contains(newText, true)
setOnQueryTextListener(object : SearchView.OnQueryTextListener {
override fun onQueryTextSubmit(query: String) = false
override fun onQueryTextChange(newText: String): Boolean {
searchSet.filter { newText.isEmpty() || it.name.contains(newText, true) }
return false
}
}
@risketo,我发布了一个代码,看起来像
newText.isEmpty()| it.name.contains(newText,true)
在过滤器中实现了这个技巧。我想知道Sonarint是否能够检测到这一点,或者这只是一个假阳性。我不确定你的意思,你也是用Java回答的?但这很接近searchSet.filter{newText.isEmpty()| | it.name.contains(newText,true)}
是正确答案。请改进你的答案,以便我能接受。谢谢