考虑从JNI调用的私有方法,否则不使用它,生成有关未使用方法的编译器警告:
private void someMethodCalledOnlyFromJNI() { // WARNING: method is never used
// ....
}
Run Code Online (Sandbox Code Playgroud)
这是Java 1.4中的一些遗留代码 - 所以没有骰子@SuppressWarnings.
您将使用什么黑客来抑制此编译器警告?
编辑:显然这只是一个警告,很容易被忽略.但是,就个人而言,我讨厌我的代码中的警告,就像我不希望看到错误一样.AFAIC - 我的代码应该有0个警告,这可能是夸大其词,但我对此非常迂腐.
举个例子,有人可能会看到这个函数,不知道它是从JNI使用的,只是删除它.
protected(并添加注释的原因) - 可忍受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)
在班上的其他地方:
if(Boolean.FALSE.booleanValue())
{ // prevents warning for unused private method which is used from JNI
someMethodCalledOnlyFromJNI();
}
Run Code Online (Sandbox Code Playgroud)
(不能使用简单false因为导致死代码警告).