我可以用什么黑客来抑制未使用的功能警告?

Yuv*_*dam 5 java

考虑从JNI调用的私有方法,否则不使用它,生成有关未使用方法的编译器警告:

private void someMethodCalledOnlyFromJNI() { // WARNING: method is never used
    // ....
}
Run Code Online (Sandbox Code Playgroud)

这是Java 1.4中的一些遗留代码 - 所以没有骰子@SuppressWarnings.

您将使用什么黑客来抑制此编译器警告?


编辑:显然这只是一个警告,很容易被忽略.但是,就个人而言,我讨厌我的代码中的警告,就像我不希望看到错误一样.AFAIC - 我的代码应该有0个警告,这可能是夸大其词,但我对此非常迂腐.

举个例子,有人可能会看到这个函数,不知道它是从JNI使用的,只是删除它.

Boz*_*zho 7

  1. 忽略它.毕竟这是一个警告 - 最好的选择
  2. 使用protected(并添加注释的原因) - 可忍受
  3. 在它上方制作一个虚拟方法,让两个人互相调用(再次注释) - 丑陋
  4. 配置IDE根本不显示此警告(在eclipse中Windows > Preferences > Java > Compiler > Errors/Warnings) - 不可取

根据您的更新:有0个警告不是您应该设置的目标.警告的数量取决于设置,因此如果您没有统一的IDE,则此数字会有所不同.然后你可以添加checkstyle/PMD来报告警告 - 然后你会有更多.合理的行为是有一个警告阈值.

如果您不希望任何人删除此方法,只需添加注释:

// This method is used is used by JNI. (Don't delete)
Run Code Online (Sandbox Code Playgroud)


Mic*_*rdt 5

在班上的其他地方:

     if(Boolean.FALSE.booleanValue())
     { // prevents warning for unused private method which is used from JNI
         someMethodCalledOnlyFromJNI();
     }
Run Code Online (Sandbox Code Playgroud)

(不能使用简单false因为导致死代码警告).

  • +1编码的东西最终将出现在thedailywtf.com上,同时仍然回答OP的问题. (7认同)