簡體   English   中英

在eclipse中沒有使用數組的未使用變量警告

[英]No unused variable warning using arrays in eclipse

我使用Eclipse Kepler,並使用以下代碼創建了一個Java文件:

String[] arr = new String[] {"abc", "def"};

Eclipse現在顯示警告:

未使用局部變量arr的值

如果我添加一行,該警告將消失:

String[] arr = new String[] {"abc", "def"};
arr[0] = "ghi";

盡管沒有讀取數組的任何元素,但是Eclipse並沒有警告我。 是否有這種現象的原因,或者僅僅是Eclipse錯誤? (IntelliJ警告有關無法讀取其元素的數組。)

編輯:我知道使用數組本身,但是我希望我的IDE足夠聰明以檢查是否使用了數組中的任何元素,因為數組實際上是其元素的容器。

這不是錯誤。 對於編譯器,當他看到arr[0] ,將使用該值。 因為程序首先讀取arr[0]的內容,然后創建"ghi"字符串,然后將其分配給arr[0] 在第一種情況下,編譯器會注意到未引用該變量,因此它向您發出警告。

檢測使用,讀取和寫入結構之間是有區別的。 Eclipse顯然只做前者(大概是因為它稍微容易一些),而其他人(例如IntelliJ)則更復雜,並且可以推斷出更多信息。

這不是錯誤; 他們只是沒有在Eclipse中高度重視靜態分析。

Eclipse基本上還不夠聰明,無法意識到您編寫的代碼行實際上對程序的行為沒有任何影響(通常,計算機很難確定)。 就其而言,如果聲明后未引用局部變量,則該局部變量未被使用。

在這里

    String[] arr = new String[] {"abc", "def"};
    arr[0] = "ghi";  // you are writing to arr

但是從來沒有讀過。 現在兩個條件都正確。 在代碼中使用arr ,從不讀取arr

然后IntelliJ IDEA會說您在這里沒有讀到arr ,而Ecplise從不顯示先前的警告。 那不是錯誤。 這兩個是IntelliJ IDEAEclipse

暫無
暫無

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

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