0

我看到一段使用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"

4

2 回答 2

2

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

这里似乎毫无意义,因为代码在没有强制转换的情况下编译得很好(因为非泛型版本Map期望Object作为键和值的类型,所以传递 aString或 aDouble不需要显式强制转换)。

于 2012-06-25T17:37:35.037 回答
1

问:(对象)在这里起什么作用? 答:它只是
铸造StringDoubleObject.

Q: ((object) new Double(1.0)) 和 (object)"2" 有什么区别吗?
答:没有

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

编辑:
刚刚从评论中意识到它应该是Object而不是object

于 2012-06-25T17:31:42.993 回答