提问者:小点点

sonarlint:删除不必要的布尔文本


我在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之前)是不必要的,为什么? 不然怎么做呢?


共1个答案

匿名用户

您不需要在筛选器中有if和else,您的代码可以是下一个形式

//要更改的行

 if (newText.isEmpty()) true
 else it.name.contains(newText, true)

//要更改的行

newText.isEmpty() || it.name.contains(newText, true)  ? true : false



 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
        }
    }