1
Map map = new HashMap();
2
map.clone();

2

Map是一個(gè)接口,HashMap是一個(gè)類(lèi)。clone()方法在Object類(lèi)中定義,因此我下意識(shí)認(rèn)為第二行可以這么寫(xiě)。結(jié)果編譯器報(bào)錯(cuò):clone()方法未定義。這個(gè)錯(cuò)誤讓我很郁悶,看了半天doc才發(fā)祥原來(lái)Map是一個(gè)接口,而接口和Object類(lèi)沒(méi)有任何關(guān)系,所以Map也就沒(méi)有繼承clone()。于是把代碼改成下面的樣子:
1
HashMap map = new HashMap();
2
map.clone();

2

這樣就可以了。