2012-07-09 56 views
0

所以我找到了可能解析數學表達式並計算答案的源代碼。但是,聲明新映射時,代碼包含語法錯誤。這張新地圖應該包含一個字符串和一個數字。我知道地圖不能引用原始類型,但是像double一樣。我該如何解決這個問題?語法錯誤 - 將「double」作爲原始類型傳遞給映射

private Map<String, double=""> user_var = new HashMap<String, double="">(); 

看到代碼的其餘部分,可以參觀here

謝謝

+7

Map '是最接近你可以得到的。 – 2012-07-09 13:49:46

+0

哇,我以爲我已經嘗試過,仍然有語法錯誤。然而,這個伎倆。謝謝。 – TimeBomb006 2012-07-09 13:50:48

+0

我在此期間檢查了代碼。我擔心它可能會期望地圖返回一個不存在的鍵的默認值。然而,情況並非如此:一旦你糾正了一個錯誤,一切都會奏效。一個有趣的錯誤,但。 – 2012-07-09 13:52:50

回答

2

這是一個不正確的聲明。正確的應該是:

private Map<String, Double> user_var = new HashMap<String, Double>(); 
1

使用Map<String, Double> map = new HashMap<String, Double>();

感謝autoboxing你可以使用它像

map.put("one",1d); 
double d = map.get("one"); 
1

一個Map不能包含一個原始的任何一種。您可以使用包裝類double雖然創建一個:

private Map<String, Double> user_var = new HashMap<String, Double>(); 

然後可以使用(幾乎)完全一樣,如果它包含了雙打:

double value = 2.3; 
user_var.put("myVar", value); 
2

你可以使用TObjectDoubleHashMap與允許String鍵和一個double值。

+0

我研究了他的代碼示例,它意味着工作與'雙'。它甚至不依賴於自動裝箱。 – 2012-07-09 13:53:27

+0

他似乎不需要'double'值爲'null'。使用簡單的'Map'可能會更簡單。 – 2012-07-09 14:04:52

+1

他只是在尋找如何修復他在網上找到的代碼。我認爲他不想修改編譯器錯誤之外的任何東西。 – 2012-07-09 14:07:26

1

Java有包裝類,允許您使用需要Object的基元類型。原始類型double的包裝類名爲Double。詳情請參閱here

相關問題