所以我找到了可能解析數學表達式並計算答案的源代碼。但是,聲明新映射時,代碼包含語法錯誤。這張新地圖應該包含一個字符串和一個數字。我知道地圖不能引用原始類型,但是像double一樣。我該如何解決這個問題?語法錯誤 - 將「double」作爲原始類型傳遞給映射
private Map<String, double=""> user_var = new HashMap<String, double="">();
看到代碼的其餘部分,可以參觀here
謝謝
所以我找到了可能解析數學表達式並計算答案的源代碼。但是,聲明新映射時,代碼包含語法錯誤。這張新地圖應該包含一個字符串和一個數字。我知道地圖不能引用原始類型,但是像double一樣。我該如何解決這個問題?語法錯誤 - 將「double」作爲原始類型傳遞給映射
private Map<String, double=""> user_var = new HashMap<String, double="">();
看到代碼的其餘部分,可以參觀here
謝謝
這是一個不正確的聲明。正確的應該是:
private Map<String, Double> user_var = new HashMap<String, Double>();
使用Map<String, Double> map = new HashMap<String, Double>();
感謝autoboxing你可以使用它像
map.put("one",1d);
double d = map.get("one");
一個Map
不能包含一個原始的任何一種。您可以使用包裝類double
雖然創建一個:
private Map<String, Double> user_var = new HashMap<String, Double>();
然後可以使用(幾乎)完全一樣,如果它包含了雙打:
double value = 2.3;
user_var.put("myVar", value);
你可以使用TObjectDoubleHashMap與允許String鍵和一個double
值。
我研究了他的代碼示例,它意味着工作與'雙'。它甚至不依賴於自動裝箱。 – 2012-07-09 13:53:27
他似乎不需要'double'值爲'null'。使用簡單的'Map'可能會更簡單。 – 2012-07-09 14:04:52
他只是在尋找如何修復他在網上找到的代碼。我認爲他不想修改編譯器錯誤之外的任何東西。 – 2012-07-09 14:07:26
Java有包裝類,允許您使用需要Object的基元類型。原始類型double的包裝類名爲Double。詳情請參閱here。
Map'是最接近你可以得到的。 –
2012-07-09 13:49:46
哇,我以爲我已經嘗試過,仍然有語法錯誤。然而,這個伎倆。謝謝。 – TimeBomb006 2012-07-09 13:50:48
我在此期間檢查了代碼。我擔心它可能會期望地圖返回一個不存在的鍵的默認值。然而,情況並非如此:一旦你糾正了一個錯誤,一切都會奏效。一個有趣的錯誤,但。 – 2012-07-09 13:52:50