簡體   English   中英

抑制 IntelliJ IDEA 中的“變量從未分配”警告

[英]Suppress "variable is never assigned" warning in IntelliJ IDEA

我們在代碼中廣泛使用反射來設置 class 字段值。 這些字段是在代碼中訪問的,但除了通過反射之外,它們永遠不會被分配。 因此 IDEA 顯示“從未分配”警告。 如果我要求 IDEA 禁止檢查,它會插入

@SuppressWarnings({"UnusedDeclaration"})

但這也禁用了對該字段是否被使用的檢查,這是我們不想要的。

是否可以僅禁用“未分配”檢查並僅對特定字段保留“未使用”檢查?

IDEA 版本為 10.5

您可以使用注釋將其標記為注入字段。 (類似於對待@EJB的方式)。 IntelliJ 檢查(至少在 10.5 版中)允許您配置自己的注釋以將字段標記為被注入。

Select 從菜單中分析,檢查代碼,然后從 go 到未使用的聲明檢查,您可以配置注釋。

  1. 運行分析:分析 > 檢查代碼...
  2. 右鍵單擊未使用的聲明(在聲明冗余樹節點下方)
  3. 單擊“配置注釋...”
  4. 添加 com.google.google.inject.Inject 和 javax.inject.Inject

要在檢查代碼后在 Android Studio 1.1.0 中配置注釋,請右鍵單擊未使用的聲明 -> 編輯設置 -> 配置注釋。

安卓工作室 1.1.0

安卓工作室 1.1.0

如果您彈出操作提示 window(Mac 上的 alt + Enter),它應該建議您取消對注入注釋的警告

設置 -> 編輯器 -> 檢查 -> 聲明冗余 -> 未使用的聲明 -> 入口點 -> 注釋

一個新的彈出窗口打開,分為 2 個不同的區域:“如果由注釋標記為入口點”和“如果注釋由標記字段為隱式寫入”。 只有在后者中,您單擊“+”圖標(添加注釋類)和 select 自動裝配注釋(或您用於依賴注入的任何注釋)。

如果您從不使用 class 代碼中的字段,這將禁用警告“從不分配私有字段”,但不會禁用警告“從不使用私有字段”,這是理想的行為。

在此處輸入圖像描述

這適用於 IntelliJ IDEA 社區版 2018.3.3 和 2020.2

不,IDEA 的檢查似乎沒有那么細。 即使使用基於注釋的依賴注入字段,對於使用@Inject注釋的字段,也可以抑制相同的警告。 自動抑制“未使用”警告。

我剛剛嘗試針對 class 運行 FindBugs-IDEA 並且沒有引發警告或錯誤。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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