SonarLint:删除不必要的布尔文字
SonarLint: Remove the unnecessary Boolean literal
我在 SearchView 中设置了:
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
}
}
SonarLint 说 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
}
}
我在 SearchView 中设置了:
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
}
}
SonarLint 说 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
}
}