簡體   English   中英

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

[英]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使用的,只是刪除它。

  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)

在班上的其他地方:

     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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM