Java:java.lang.Double无法强制转换为java.lang.String

Paw*_*wan 3 java

我在HashMap中存储了一个double值,如图所示

HashMap listMap = new HashMap();

double mvalue =0.0;

listMap.put("mvalue",mvalue );
Run Code Online (Sandbox Code Playgroud)

现在,当我试图检索该值时,如图所示

mvalue = Double.parseDouble((String) listMap.get("mvalue"));
Run Code Online (Sandbox Code Playgroud)

我收到一个错误

java.lang.Double无法强制转换为java.lang.String

我在这里很困惑,

这是我的实际HashMap,我正在设置它中的值,如图所示

HashMap listMap = new HashMap();
double mvalue =0.0 ;
List<Bag> bagList = null; 
listMap.put("bagItems",bagList);
listMap.put("mvalue", mvalue);
Run Code Online (Sandbox Code Playgroud)

有人可以告诉我,HashMap的结构应该如何?

pla*_*nes 6

你在地图上放了一个Double.不要先转换为String.这将有效:

HashMap<String, Double> listMap = new HashMap<String, Double>();
mvalue = listMap.get("mvalue");
Run Code Online (Sandbox Code Playgroud)

您的原始double被自动装箱到双重对象.使用泛型来避免需要施放,这是<String, Double>一部分.