![](/img/trans.png)
[英]What value for @SuppressWarnings do I use to suppress the “Can be private” warning?
[英]What hack can I use to suppress an unused function warning?
考慮從JNI調用的私有方法,否則不使用它,生成有關未使用方法的編譯器警告:
private void someMethodCalledOnlyFromJNI() { // WARNING: method is never used
// ....
}
這是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)
在班上的其他地方:
if(Boolean.FALSE.booleanValue())
{ // prevents warning for unused private method which is used from JNI
someMethodCalledOnlyFromJNI();
}
(不能使用簡單的false
因為這會導致死代碼警告)。
要么忽略警告,要么將其聲明為protected
。 如果你去protected
並想要阻止子類化/覆蓋,那么也將它聲明為final
。
首先,它只是一個警告,因此對你來說不應該是一個問題。
您可以修改代碼以刪除該功能,從而消除問題。
或者只是從代碼開頭/結尾的某些地方調用它,忽略任何結果。 只要它不會試圖設置任何會影響你程序其余部分的東西你就沒事了。
你可以把它公之於眾。 如果是遺留代碼,我相信沒有人會抱怨:)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.