我看到了一段使用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"
之间有任何差异吗?
答案 0 :(得分:2)
这是对Object
的强制转换(注意它在Java中大写)。
这里似乎毫无意义,因为代码在没有强制转换的情况下编译正常(因为Map
的非泛型版本期望Object
作为键和值的类型,所以通过String
或Double
不需要显式投射。
答案 1 :(得分:1)
问:(对象)在这里起作用了什么?
答:它只是将String
和Double
投射到Object.
问:((对象)新双(1.0))和(对象)“2”之间有什么区别?
答:没有
((object) new Double(1.0)) - casting Double into Object
((object)"2”) - casting String into Object
修改强>
刚从评论中意识到它应该是Object
而不是object