2012-08-07 62 views
-5

這是我的Java代碼的一部分,IDE是Eclipse。 'Lines'是一串字符串。虛假(?)Eclipse「未使用局部變量」警告

//build anchor inner text 
int Count = Lines.length; 
String Text = ""; //<----------Eclipse shows warning here 
for (int Index=0; Index<Count; Index++) { 
    Text += Lines[Index]; 
    if (Index<Count-1) 
    Text += "<br/>"; 
} 

的「文本」變量被外部的「for」循環,然而,其內部使用聲明。 Eclispe向我顯示此警告信息:「局部變量文本的值未使用」在變量「文本」的聲明行中。

怎麼會這樣?它在'for'循環中使用。

+8

注意,Java變量應該以小寫字母開頭。只有課程應以大寫字母開頭。 – 2012-08-07 07:46:05

+2

在我的這個項目中,約定是倒過來的:) – jondinham 2012-08-07 07:46:57

+1

如果你聲明沒有值的字符串呢? 'String Text;' – Simon 2012-08-07 07:49:53

回答

2

您正在爲您的變量Text指定一個空字符串,然後不是正確正在讀取它(至少在顯示的代碼段中)。當Count == 0或甚至Count < 1時,循環體將不會執行,因此不使用Text。不過,我想你以後會用Text做點什麼。

+0

Downvoted,因爲這是錯誤的。這不是因爲他一定不會讀它 - 而是因爲他絕對不會讀它。出於此警告的目的,「+ =」不算作讀數。 – immibis 2014-08-03 05:28:47

6

您正在設置變量值,但其值不會在代碼中使用。警告是無害的,並且在使用變量值時很可能會消失。

+0

與我的代碼一樣,它用於連接'for'循環中的另一個字符串 – jondinham 2012-08-07 07:48:23

+5

永遠不要說無害,儘可能爭取0警告。 – 2012-08-07 07:48:44

+0

您也可以在eclipse中使用註釋來抑制警告。成爲一名叛軍!撇開玩笑,你應該永遠不要警告。我的意思是,這個特殊的不會導致任何問題。 – Logard 2012-08-07 08:11:18

3

Eclipse很可能會抱怨,因爲您將東西扔進Text變量中,而無需執行任何操作。例如,執行諸如System.Console.WriteLine(Text);(假設Text是字符串)應該刪除警告。

+0

與我的代碼一樣,它用於連接'for'循環中的另一個字符串 – jondinham 2012-08-07 07:51:03

+0

@PaulDinh:Eclipse正在抱怨,因爲您從不*使用變量,所以如果您將它傳遞給實際* *的方法*一些事情,應該刪除警告。我只是發佈了一個簡單的示例來向您展示如何刪除此警告。 – npinti 2012-08-07 07:53:17

+0

它的值在'for'循環中用來與其他字符串連接,是不是已經'使用'了? – jondinham 2012-08-07 07:54:43

1

您正在寫入變量Text但您沒有從中讀取 - 這意味着您正在執行您不需要的計算。

一旦您返回文本或顯示它到控制檯等,它將刪除警告。

+0

與我的代碼一樣,它用於與'for'循環中的另一個字符串進行連接。 – jondinham 2012-08-07 07:50:27

0
  • 當您連接使用StringBuilder()
  • 搞笑扭轉慣例,但危險(碰撞類名),忘了這個習慣對professionnal使用或實際工作。
  • 日食是很友好的:在你的Test更大,你忘了它嗎?真的,你什麼都不做,你沒有任何工作。 '空'的時間消耗。
  • 你可以把public static Test刪除警告,並從所有其他程序中讀取它。