警告:无法访问代码,Kotlin中未使用的等于表达式



这是我的代码,我不喜欢警告。currentFlag.inc()正在发出警告:不可访问的代码,如果(currentFlag==1(正在发出警告;未使用的等于表达式

private fun processGather() {
TODO("process Gather implemented")
currentFlag.inc() 
if (currentFlag == 1) { 
this.binding.ivStep1.setImageDrawable(AppCompatResources.getDrawable(this, R.drawable.step2))
} 
}

您可能滥用了TODOTODO这样做:

总是抛出NotImplementedError,声明操作未实现。

它旨在用作尚未实现的函数的占位符返回值。在您的情况下,// TODO评论似乎更合适。

如果你真的打算把NotImplementedError扔到那里,但仍然想让警告静音,你可以将Suppress注释应用到文件或周围的方法:

@file:Suppress("UNREACHABLE_CODE", "UnusedEquals")
// or
@Suppress("UNREACHABLE_CODE", "UnusedEquals")
private fun processGather() {

注意,TODO的返回类型是Nothing,这告诉编译器它永远不会返回(它总是抛出异常(。因此,可以分析出TODO调用之后的所有内容都不会被执行。因此;不可达代码";。

可能是因为这个不可访问的代码;未使用的相等表达式";检查以触发;由于它是不可访问的,所以它不被使用";。这也可能是无意的,因为在我看来,只有不可访问的代码检查才应该触发。

TODO方法将始终抛出NotImplemented错误。由于TODO是方法中的第一行,因此执行永远无法到达TODO方法调用下面的后续行。与JAVA不同(它会导致编译错误(,在kotlin中,无法访问的代码会在编译期间导致警告。为了避免这种情况,只需注释TODO方法下面的代码即可调用

相关内容

最新更新