考虑从JNI调用的私有方法,否则不使用它,生成编译器警告未使用的方法:
private void someMethodCalledOnlyFromJNI() { // WARNING: method is never used
// ....
}
这是Java 1.4中的一些遗留代码 - 所以@SuppressWarnings
上没有骰子。
您将使用什么黑客来抑制此编译器警告?
编辑:显然这只是一个警告,很容易被忽略。但是,就个人而言,我讨厌我的代码中的警告,就像我不希望看到错误一样。 AFAIC - 我的代码应该有0个警告,这可能是夸大其词,但我对此非常迂腐。
就像一个例子,有人可能会看到这个函数,不知道它是从JNI使用的,只是删除它。
答案 0 :(得分:6)
protected
(并添加评论原因) - bearable Windows > Preferences > Java > Compiler > Errors/Warnings
) - 不可取 根据您的更新:有0个警告不是您应该设置的目标。警告的数量取决于设置,因此如果您没有统一的IDE,则此数字会有所不同。然后你可以添加checkstyle / PMD来报告警告 - 然后你会有更多。合理的行为是有一个警告阈值。
如果您不希望任何人删除此方法,只需添加评论:
// This method is used is used by JNI. (Don't delete)
答案 1 :(得分:5)
班上的其他地方:
if(Boolean.FALSE.booleanValue())
{ // prevents warning for unused private method which is used from JNI
someMethodCalledOnlyFromJNI();
}
(不能使用简单的false
,因为这会导致死代码警告。)
答案 2 :(得分:3)
要么忽略警告,要么将其声明为protected
。如果您选择protected
并希望阻止子类化/覆盖,那么也将它声明为final
。
答案 3 :(得分:1)
首先,它只是一个警告,因此对你来说不应该是一个问题。
您可以修改代码以删除该功能,从而消除问题。
或者只是从代码开头/结尾处的某些地方调用它,并忽略任何结果。只要它不会尝试设置任何会影响你程序其余部分的东西,你就可以了。
答案 4 :(得分:0)
你可以把它公之于众。如果它是遗留代码,我相信没有人会抱怨:)