package Server;import java.io.Serializable;
public class Administrator implements Comparable<Administrator>,Serializable{
??????//<Administrator>为什么要加这个呀,是干什么用的呀.为什么去掉就出错.
private int id;
private String password;
public Administrator(String password){
id=Server.getServerDatabase().getNewAdmID()+1;
this.password=password;
}
public Administrator(int id){
this.id=id;
}

int getID(){
return id;
}
String getPassword(){
return password;
}

void setPassword(String password){
this.password=password;
}

public int compareTo(Administrator t){
boolean b=(id==t.getID());
return (b==true ? 0 : id>t.getID() ? 1 : -1);
}

public String toString(){
return "ID:"+id+" Password:"+password;
}
}??????//<Administrator>为什么要加这个呀,是干什么用的呀.为什么去掉就出错.

解决方案 »

  1.   

    我记得以前的版本是
        int compareTo(Object o)
    你需要在方法中自己判断参数o的类型,并进行类型转换。比如:
        if (o instanceof Administrator){
            Administrator adm = (Administrator)o;
        }看了看API Spec,现在版本中Comparable是这样声明的,
        interface Comparable<T>
    再看它的唯一的方法的声明:
        int compareTo(T o) ;这两个T是一致的。
    这是泛型的用法,使用<T>来声明进行比较对象的类型,而不用在方法中自己判断。直接使用o就可以了