android - 警告:无法访问的代码,Kotlin 中未使用的等于表达式
问题描述
这是我的代码,我不喜欢警告。
currentFlag.inc()
正在发出警告:无法访问的代码,if(currentFlag == 1) 正在发出警告:未使用的等于表达式
private fun processGather() {
TODO("process Gather implemented")
currentFlag.inc()
if (currentFlag == 1) {
this.binding.ivStep1.setImageDrawable(AppCompatResources.getDrawable(this, R.drawable.step2))
}
}
解决方案
你可能误用了TODO
. TODO
做这个:
总是抛出 NotImplementedError 说明操作未实现。
它旨在用作您尚未实现的函数的占位符返回值。在您的情况下,评论似乎// TODO
更合适。
如果您确实打算在NotImplementedError
那里抛出,并且仍然想使警告静音,则可以将Suppress
注释应用于文件或周围的方法:
@file:Suppress("UNREACHABLE_CODE", "UnusedEquals")
// or
@Suppress("UNREACHABLE_CODE", "UnusedEquals")
private fun processGather() {
请注意,返回类型TODO
是Nothing
,这告诉编译器它永远不会返回(它总是会抛出异常)。正因为如此,可以分析出TODO
调用之后的一切都不会被执行。因此,“无法访问的代码”。
可能是因为这个无法访问的代码,它也会触发“未使用的相等表达式”检查,理由是“因为它无法访问,所以它没有被使用”。这也可能是无意的,因为在我看来,只有无法访问的代码检查应该触发。
推荐阅读
- tabulator - 制表符复选框多选
- visual-studio - 缺少选项值:installPath
- javascript - 单击弹出窗口后显示麦克风权限
- sql - SQL - 连接两个表,但仅通过左表出现来获取连接列的平均值
- sql-server - 我用 sql 查询生成 excel 表,但它只在 93 版本中生成,我怎样才能让它到 2013 版本?
- dependency-injection - Dagger 2 - proxyProvide 方法的目的是什么?
- python - 如何拥有一个非常局部的全局变量?
- data-binding - UWP如何使用绑定ListView的选定项中的更改来更新绑定的TextBox
- ruby-on-rails - 在 Dokku 实例上安装 PgBouncer?
- php - 显示列中有值的所有对象