2011-07-23 18 views
-2

這是我的代碼:局部變量XXX是從來不看

boolean startGameBoolean; 
Bundle extras = getIntent().getExtras(); 
extras.getInt("startGameBoolean"); 
if (startGameBoolean = true){ 
    counter.start(); 
} 

的Eclipse發出警告說,「局部變量startGameBoolean是從來不看」;但它是。 我從另一個意圖得到布爾值。

我編輯了我的代碼,我錯過了一些,對不起!

+0

我不理解你。但是,您將第二個startGameBoolean作爲字符串(在「」之間)。最好使用getBoolean方法來獲取布爾值。 – gregory561

+3

你寫錯了什麼,因爲startGameBoolean真的從來沒有使用過... – nebkat

+0

有更多的代碼可以告訴我們嗎?還是那些只有三行代碼? –

回答

10

是不是應該是startGameBoolean = extras.getBoolean("startGameBoolean");

在您給出的代碼中,boolean startGameBoolean;不在任何地方使用。該警告意味着儘管您聲明瞭它,但它並不在它所居住的區塊中使用,因此可以(應該)被刪除。

編輯:

看到你的加入後,你用startGameBoolean,但分配給它,而你應該與它比較:

if (startGameBoolean == true){ 
//     ^
    counter.start(); 
} 

而且,分配的getBoolean()結果到如我在第一個聲明中所寫的那樣變化。

+0

對不起,我錯過了一些代碼,我編輯了我的問題。 –

+1

@Badr Hari - 看我的編輯 – MByD

+1

更棒的是:'if(startGameBoolean)'。它已經是一個布爾值,不需要'== true'(並且它引入了OP所做錯誤的可能性)。 –

5

我敢打賭同意Eclipse,它沒有被使用。您向我們展示的代碼沒有在任何地方使用。

更新

變量仍然是從來沒有使用過,因爲你if條件分配它;你永遠不會比較它(這是它看起來像你試圖做的)。

變化

if (startGameBoolean = true){ 

if (startGameBoolean){ 
0
Bundle extras = getIntent().getExtras(); 
boolean startGameBoolean = extras.getBoolean("startGameBoolean"); 

像這樣的事情?你不能拿booleangetInt()。也許,如果你正在處理int,但值爲01。那麼你應該將startGameBoolean的類型更改爲int並用getInt()取回,有時候人們會這樣做。

2
if (startGameBoolean = true){ 

應..

if (startGameBoolean == true){ 

..或更好..

if (startGameBoolean){ 
0

我有同樣的問題,爲Android開發。

你看到這些警告稱「變量從來沒有讀過」的原因是因爲你賦予它右後創建它。嘗試在類的開始處創建變量,然後將其分配給OnCreate()或其他適當的方法,該類會在首次創建類時調用。