為什么Java中Map接口的get函數(shù)參數(shù)竟然是Object

文章來源于自己實際開發(fā)項目中遭遇到的一個問題。在一開始刻盐,我定義了一個

Map<Integer, String> map;

這并沒有說明問題诸尽,然后開始往下寫了一堆函數(shù),在寫到第N個函數(shù)的時候,我發(fā)現(xiàn)這個map需要改成

Map<String, String> map;

改完之后我天真的以為ide能幫我檢查出所有需要修改的地方请祖,我只需要按照列出的紅線一個一個的把傳入?yún)?shù)的類型修改好就可以了订歪,于是毫無疑問的,我的程序最后敗在了這個地方

map.get(someIntegerParam);

改正程序中的問題只是一方面肆捕,更重要的是刷晋,為什么這個get函數(shù)就要這么特別,為什么不和put一樣用范型作為參數(shù)呢I髁辍眼虱?google了一把,在stackoverflow上也有不少人問過這個問題荆姆,其中這一篇說的算比較好的蒙幻,大概的意思就是說如果采用范型作為get的參數(shù)并不能很好的體現(xiàn)出map的精神,因為key是否相等胆筒,取決于key1.equals(key2)是否成立邮破,這里并不應該限制類型。在sof上的另外一篇文章也闡述了這個問題仆救,并引用了Josh Bloch的一段話:

Josh Bloch says (6:41) that they attempted to generify the get method of Map, remove method and some other, but "it simply didn't work". There are too many reasonable programs that could not be generified if you only allow the generic type of the collection as parameter type. The example given by him is an intersection of a List of Numbers and a List of Longs.

大概意思就是說我們曾經(jīng)嘗試過把get方法范型化抒和,但是它掛了,有很多很多原因使他不能被范型化彤蔽,比如你用List<Number>做key摧莽,但卻想用List<Long>get

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
  • 序言:七十年代末顿痪,一起剝皮案震驚了整個濱河市镊辕,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌蚁袭,老刑警劉巖征懈,帶你破解...
    沈念sama閱讀 206,482評論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異揩悄,居然都是意外死亡卖哎,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,377評論 2 382
  • 文/潘曉璐 我一進店門删性,熙熙樓的掌柜王于貴愁眉苦臉地迎上來亏娜,“玉大人,你說我怎么就攤上這事蹬挺∥兀” “怎么了?”我有些...
    開封第一講書人閱讀 152,762評論 0 342
  • 文/不壞的土叔 我叫張陵巴帮,是天一觀的道長幸缕。 經(jīng)常有香客問我群发,道長,這世上最難降的妖魔是什么发乔? 我笑而不...
    開封第一講書人閱讀 55,273評論 1 279
  • 正文 為了忘掉前任熟妓,我火速辦了婚禮,結果婚禮上栏尚,老公的妹妹穿的比我還像新娘起愈。我一直安慰自己,他們只是感情好译仗,可當我...
    茶點故事閱讀 64,289評論 5 373
  • 文/花漫 我一把揭開白布抬虽。 她就那樣靜靜地躺著,像睡著了一般纵菌。 火紅的嫁衣襯著肌膚如雪阐污。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,046評論 1 285
  • 那天咱圆,我揣著相機與錄音笛辟,去河邊找鬼。 笑死序苏,一個胖子當著我的面吹牛手幢,可吹牛的內容都是我干的。 我是一名探鬼主播忱详,決...
    沈念sama閱讀 38,351評論 3 400
  • 文/蒼蘭香墨 我猛地睜開眼围来,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了匈睁?” 一聲冷哼從身側響起监透,我...
    開封第一講書人閱讀 36,988評論 0 259
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎航唆,沒想到半個月后胀蛮,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 43,476評論 1 300
  • 正文 獨居荒郊野嶺守林人離奇死亡佛点,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 35,948評論 2 324
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了黎比。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片超营。...
    茶點故事閱讀 38,064評論 1 333
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖阅虫,靈堂內的尸體忽然破棺而出演闭,到底是詐尸還是另有隱情,我是刑警寧澤颓帝,帶...
    沈念sama閱讀 33,712評論 4 323
  • 正文 年R本政府宣布米碰,位于F島的核電站窝革,受9級特大地震影響,放射性物質發(fā)生泄漏吕座。R本人自食惡果不足惜虐译,卻給世界環(huán)境...
    茶點故事閱讀 39,261評論 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望吴趴。 院中可真熱鬧漆诽,春花似錦、人聲如沸锣枝。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,264評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽撇叁。三九已至供鸠,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間陨闹,已是汗流浹背楞捂。 一陣腳步聲響...
    開封第一講書人閱讀 31,486評論 1 262
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留正林,地道東北人泡一。 一個月前我還...
    沈念sama閱讀 45,511評論 2 354
  • 正文 我出身青樓,卻偏偏與公主長得像觅廓,于是被迫代替她去往敵國和親鼻忠。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 42,802評論 2 345

推薦閱讀更多精彩內容