的Java醫生說 -Cloneable的行爲
Object類本身不 實現接口Cloneable,所以 調用對象 其類的克隆方法將導致 對象在運行拋出異常時間。
這是爲什麼Object類中的clone方法受到保護的原因?是這樣嗎 ?
這意味着任何不實現cloneable的類將在調用clone方法時拋出CloneNotSupported異常。
我跑了一個測試程序
public class Test extends ABC implements Cloneable{
@Override
public Object clone() throws CloneNotSupportedException {
System.out.println("calling super.clone");
return super.clone();
}
public static void main(String[] args) {
Test t = new Test();
try{
t.clone();
}
catch (Exception e) {
e.printStackTrace();
}
}
}
class ABC{
}
從測試類的clone方法super.clone被調用?
爲什麼不拋出異常?
[已關閉]?這不是一個論壇。你應該選擇一個最好的答案並接受它。 – musiKk 2010-08-13 12:07:43
[關閉]在問題標題的末尾有一個非常具體的含義StackOverflow。這意味着至少有五個擁有關閉權限的用戶或者至少一個主持人已經決定您的問題不符合StackOverflow上預期的標準。這目前不適用於您的問題,因此我將刪除問題標題前面的[Closed]標籤。如果您真的想讓[Closed]標籤留下,請將其放回原處,我不會再進行第二次編輯 - 或者要求我撤消更改,我會這樣做。 – richj 2010-09-01 01:05:18