Android SonarLint:删除不必要的布尔文本

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()

我已在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
    }
}
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)}
是正确答案。请改进你的答案,以便我能接受。谢谢