2012-11-12 2 views
4

XQPart 인터페이스 모의를 만들고 싶습니다. 문제는 clone 메서드를 가진 XQCloneable이라는 인터페이스를 확장한다는 것입니다.object와의 인터페이스 구현 방법 .Clone conflicting method

않고 ​​CloneNotSupportedException에이 절을 던졌습니다 말 구불 구불 한 Part에서

public class Part implements XQPart {} 

빨간색 오류 : Eclipse에서 나는 인터페이스 등이 세트로 새로운 클래스를 만들 때

, 나는이 수업을받을 Object.clone()은 XQCloneable.clone()과 호환되지 않습니다.

여기서 어떻게 할 수 있습니까? 이 인터페이스를 구현할 방법이 없습니까?


참고 : 내가 방법을 구현하려고 않았지만, 그래서 오류가 계속 accepted answer에서 말한대로 나는 throws 선언을 건너 뛸 수 몰랐어요.

답변

9

클래스는 CloneNotSupportedException을 throw하도록 선언 된 Object.clone을 상속합니다. 반면에, 클래스는 에 throws 절이없는 XQCloneable을 구현합니다. public Object clone() { return null; }이라는 빈 선언을 만들면 클래스가 인터페이스와 호환 될 수있게됩니다. XQCloneableclone() 방법이 실제로 거기에 정의되어 있지 않은 같은 재미 칵테일의 일종 인 Cloneable 인터페이스를 확장하기 때문에 @Emmerich 상태로

+0

아, 고마워. 우리가 간다. 나는 그 방법을 구현해야한다는 것을 알았지 만, 내가 그 오류를 계속 지키면서 어떻게 살아 있는지 알 수 없었다. 'throws' 선언을 제거하면 바로 수정되었습니다 :) – Svish

0

단위 테스트를위한 모의 객체를 만드는 경우, 메소드를 구현해야합니다 (아무 작업이 아니더라도). 인터페이스를 조롱하려면 인터페이스 요구 사항을 충족시키는 빈 메소드가 필요합니다. 테스트중인 장치에 no-op 메서드가 필요하지 않은지 확인하십시오.

0

는 오류가 아니라 오히려 Object 클래스, 발생!

의미는 Object 버전 단지 CloneNotSupportedException을 던진다, Cloneable를 구현하고 이러한 클래스는 clone() 방법 @Override해야 클래스 속성 별 특성 복사본을 생성하는 것이 가능해야한다는 것이다. 대부분의 경우 내가 너무 기대하지 않을 것이다 단지 방법의 반환 null 또는 신원이 - 당신의 모의와 유니 테스트는 XQPart 구현의 복사/복제를 만들 필요가 있는지 여부를

판단/결정하는 것은 여러분의 몫입니다.

건배,