2010-03-05 2 views
3

내가 잘못하고 있어요 아무것도 표시되지 않지만, 넷빈즈 나에게 다음과 같은 오류 제공합니다 : 그것은 instanceof을 철자자바 Comparable 인터페이스 compareTo 메소드

incomparable types 
required: boolean 
found: java.lang.Object 


public int compareTo(Object obj) { 
    if(obj instaceof Employee){ 
     Employee employee = (Employee) obj; 
     if(this.weekly_earnings > employee.weekly_earnings) 
      return 1; 
     else if(this.weekly_earnings == employee.weekly_earnings) 
      return 0; 
     else 
      return -1; 
    } 
    else{ 
     System.out.println("Error"); 
    } 
} 
+3

instaceof가 존재하지 않습니다. –

+2

그리고 오류 케이스에서 아무것도 반환하지 않습니다 ('ClassCastException'을 던져야하며 실제로는 generics를 사용해야합니다). –

+1

방금 ​​반환했을 경우 (this.weekly_earnings - employee.weekly_earnings), 모든 if 문을 저장하면 더 좋을 것이라고 덧붙이고 싶습니다. – DaveJohnston

답변

6

합니다.

또한 Tom Hawtin이 의견에서 언급했듯이 Java 1.5 이상을 사용하는 경우 instanceof을 사용하지 않으려면 compareTo(Employee emp)을 쓸 수 있습니다. Object Ordering 자바 튜토리얼에서 Comparable 유형을 작성하는 데 대한 철저한 섹션이 있습니다.

+0

구문 오류가 있습니까? 클린 빌드를 시도하거나 netbeans를 다시 시작하십시오. – Pindatjuh

+0

@Pindatjuh : 구문 오류 "비교할 수없는 형식 ..."을 제공합니다. –

+0

맞습니다. 나는 그 실수를했다고 믿을 수 없다. – user69514