Java Comparable Interface compareTo方法

use*_*514 3 java overloading interface compareto comparable

我没有看到任何我做错的事,但NetBeans给了我以下错误:

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");
    }
}
Run Code Online (Sandbox Code Playgroud)

Bil*_*ard 7

这是拼写的instanceof.

此外,正如Tom Hawtin在评论中提到的,如果您使用的是Java 1.5或更高版本,则可以编写compareTo(Employee emp)以避免使用instanceof.在Object Ordering Java教程中有关于编写Comparable类型的详细部分.

  • 不要心疼.如果我之前没有这样做,我就不会那么快.:)正如Pindatjuh所指出的那样,它甚至不是你从那个错字中得到的错误信息. (4认同)