(object)在为hashmap赋值时的用法

时间:2012-06-25 17:30:08

标签: java

我看到了一段使用Hashmap的java代码,如下所示:

Map indata = new HashMap(12);
//load data
indata.put(“checking”, ((object) new  Double(1.0)));
indata.put(“PURPOSE”, ((object)"2”));

令我困惑的是“put”方法的两种用法,其中我们有((object) new Double(1.0)) (object)"2"(object)在这里起作用了什么? ((object) new Double(1.0)) (object)"2"之间有任何差异吗?

2 个答案:

答案 0 :(得分:2)

这是对Object的强制转换(注意它在Java中大写)。

这里似乎毫无意义,因为代码在没有强制转换的情况下编译正常(因为Map的非泛型版本期望Object作为键和值的类型,所以通过StringDouble不需要显式投射。

答案 1 :(得分:1)

问:(对象)在这里起作用了什么? 答:它只是将StringDouble投射到Object.

问:((对象)新双(1.0))和(对象)“2”之间有什么区别?
答:没有

((object) new Double(1.0))  - casting Double into Object
((object)"2”) -  casting String into Object   

修改
 刚从评论中意识到它应该是Object而不是object