我在下面的代碼中收到編譯錯誤「not a statement」。不知道有什麼問題。 inMax是一個hasmap。 tcharge是一個字符串,它是一個關鍵。這是一個有效的陳述嗎?關於Object to double java
Double tMaxCharge= (Double)inMax.get(tCharge);
我在下面的代碼中收到編譯錯誤「not a statement」。不知道有什麼問題。 inMax是一個hasmap。 tcharge是一個字符串,它是一個關鍵。這是一個有效的陳述嗎?關於Object to double java
Double tMaxCharge= (Double)inMax.get(tCharge);
看起來不錯,檢查之前的聲明。
Java的編譯器並不總是像它認爲的那樣有幫助。看看附近的其他線路,它指向你。問題可能在之前。
我同意對象的答案,但要避免鑄造,可你只是用在這種情況下仿製藥,如:
HashMap<String,Double> myMap = new HashMap<String,Double>();
myMap.put("foo", 3.14); //or new Double(3.14)
myMap.get("foo") //evaluates to type Double (and can be autoboxed to a double)
非常感謝信息 – Arav 2010-03-03 05:09:07
顯然,你的代碼是這樣的:
if (someCondition)
Double tMaxCharge= (Double)inMax.get(tCharge);
else
doSomething();
正如@對象說,這不是有效的Java語法。一個LocalVariableDeclarationStatement
是BlockStatement
但不是Statement
和if
語句需要Statement
繼)
。
但如果你想想看,一個LocalVariableDeclarationStatement
它不是內Block
是毫無意義的。聲明的範圍將立即結束,所以聲明的標識符不能使用。 (它必須立即結束,否則你會得到各種語言異常。)
「然後」在Java? – Jijoy 2010-03-03 08:32:14
ooops ...固定 – 2010-03-03 09:17:00
我有一個if語句之前 if Double tMaxCharge =(Double)inMax.get(tCharge); else 做些什麼 我只是將此語句更改爲括在大括號中,並且它開始工作 if Double tMaxCharge =(Double)inMax.get(tCharge); } 其他 做點事 不知道爲什麼它在大括號裏面工作。 –
Arav
2010-03-03 05:08:47
因爲你正在定義一個局部變量(tMaxCharge)它需要在一個塊中。如果你在之前定義了tMaxCharge,如果你不需要大括號。 – objects 2010-03-03 05:25:08
@objects:只要好奇,在沒有其他語句使用它的塊中的Double聲明和初始化有什麼好處? – 2010-03-03 06:22:28