2012-11-12 43 views
4

我想創建這個XQPart接口的模擬。問題是它擴展了一個名爲XQCloneable的接口,該接口有一個clone方法。如何實現與object.Clone衝突方法的接口

當我在Eclipse中使用這組作爲一個接口一個新的類,我得到這個類:

public class Part implements XQPart {} 

有一個紅色的錯誤波浪下Part

CloneNotSupportedException的中拋出的第Object.clone()與XQCloneable.clone()不兼容

我能在這裏做什麼?有沒有辦法來實現這個接口?


注:我曾嘗試實施方法,但並沒有意識到我可以跳過throws聲明中accepted answer告訴因此一直得到錯誤。

回答

9

你的班級繼承Object.clone,這是宣佈拋出CloneNotSupportedException。另一方面,您的班級實施XQCloneable,其clone沒有throws子句。如果您只是創建一個空聲明public Object clone() { return null; },它將使您的類與界面兼容。

+0

啊,謝謝,我們走吧。我知道我必須實施這個方法,只是不能讓我活下去,因爲我一直在弄錯那個錯誤。刪除'throws'聲明修復了它的權利:) – Svish

0

如果您正在爲單元測試製作模擬對象,則需要實施該方法(即使它是無操作的)。模擬一個接口將需要空方法來匹配接口的要求。只要確保您正在測試的設備不需要無操作方法。

0

由於@Emmerich狀態,發生了錯誤,因爲XQCloneable擴展Cloneable接口,這是因爲clone()方法實際上是沒有定義排序其中一個有趣的藥汁,而是在Object類!

的語義是它必須能夠創建一個執行Cloneable,這些類必須@Overrideclone()方法一類屬性的屬性副本,爲Object版本剛剛拋出CloneNotSupportedException

無論您的模擬和單向測試是否需要創建XQPart實現的副本/克隆,都由您來決定/確定 - 在大多數情況下,我不會期望如此,只是讓方法返回null或標識。

乾杯,