【问题标题】:Kotlin suppress 'condition is always true'Kotlin 抑制“条件始终为真”
【发布时间】:2017-09-13 21:40:30
【问题描述】:

在无数次检查(我知道如何启用和禁用)中浪费更多时间,我找不到任何方法来禁用对 Android Studio 中我的 Kotlin(不是 Java)文件的 'Condition is always true' 的特定检查。我知道我在做什么,根本不需要这种检查,但更恰当地说,我想为文件、类或函数或任何东西禁止它。

一如既往的令人沮丧。

//I'm well aware the condition below is ALWAYS true
if(ANDROID_IS_AWESOME) {
    fml()
}

【问题讨论】:

  • 不确定 Android Studio,但在 IntelliJ 中这称为Condition of 'if' expression is constant,我可以在“检查”下将其关闭或提高其级别。
  • 我认为关键是阻止这种行为并促进在代码之外使用标志(假设这是用于什么 - 否则,为什么要在 if 中包装块?)
  • 查看首选项 -> 编辑器 -> 检查 -> "常量 'if' 语句"

标签: android-studio kotlin code-inspection


【解决方案1】:

在 Kotlin 中,使用 ConstantConditionIf忽略此警告:

@Suppress("ConstantConditionIf")
if(ANDROID_IS_AWESOME) {
    fml()
}

【讨论】:

  • 在我的情况下它不起作用但是我尝试关注并警告消失了@Suppress("SENSELESS_COMPARISON")
【解决方案2】:

在 Java 中就是这样做的:

@SuppressWarnings("ConstantConditions") // Add this line
public int foo() {
    boolean ok = true;
    if (ok) // No more warning here
        ...
}

在 Kotlin 中我认为您必须改用 @Suppress("SENSELESS_COMPARISON")

【讨论】:

    【解决方案3】:

    在 Android Studio 中,

    1. 将文本光标置于您要抑制的条件,
    2. 在键盘上按 Alt+Enter 会弹出:

    ?简化表达式⯈

    1. 按键盘上的向右箭头,
    2. 选择您喜欢的任何选项,例如:

      • 禁用检查
      • 为语句/乐趣/类/文件禁止“ConstantConditionIf”

    【讨论】:

    • 与许多其他检查一样,在 Android Studio 中没有通过 Alt+Enter 抑制此检查的选项。这让我一直感到沮丧。
    • 好吧,我只是测试并描述了它,退后一步阅读全文。抑制选项隐藏在 Alt+Enter 菜单中,可通过按右箭头键访问。如果 Alt+Enter 不起作用,请检查您的键绑定。
    • 我的眼里充满了泪水。谢谢,陌生人。
    【解决方案4】:

    在 Kotlin 中,我们可以将 @Suppress("SENSELESS_COMPARISON") 用于类或 if 语句。

    【讨论】:

      【解决方案5】:

      找到了:

      Settings > Editor > Inspections > Kotlin > Redundant Constructs > Condition of 'if' expression is constant

      【讨论】:

      • 正在找具体的设置,cmets中没有列出
      • @rmirabelle 就在第一条评论中,结合 IntelliJ 搜索设置的能力,这应该是一件容易的事。应得的信用!题外话:如果对 Android 代码的inspections 让你发疯,也许你应该换个职业。
      • @EugenPechanec 好吧,对于愚蠢的老我来说,这并不容易。尽管您准确地指示按右箭头键,但我没有这样做,因为我很少遇到仅通过键扩展的子菜单。对我来说,这是一种 UI 反模式 - 即您必须同时使用鼠标和键才能正常使用菜单。现在我知道了。题外话:如果你同意的话,我会继续保持我的职业......天哪。
      • 你在告诉我,我是在一年后才发现的。你当然可以只使用键盘来完成整个事情(我的意思是 Alt+Enter 和箭头键都在那里)但是!我现在才发现您也可以使用鼠标来扩展菜单。不过,您不要单击箭头,不,先生,您必须单击箭头右侧的毫米厚点。太棒了。
      • 天哪,谢谢@EugenPechanec 我完全不知道点​​击箭头会有不同的效果!!
      猜你喜欢
      • 2014-03-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-12-04
      • 1970-01-01
      • 1970-01-01
      • 2018-08-25
      相关资源
      最近更新 更多