今天在寫一個(gè)類型時(shí),需要覆寫hashCode和compareTo方法,源代碼如下:
public int hashCode(){
return pslength.hashCode();
}
public int compareTo(Object o){
PaperSkin ps = (PaperSkin)o;
int cmp = (pslength * pswidth).compareTo(ps.pslength * ps.pswidth);
return cmp;
}
編譯的時(shí)候,出現(xiàn)了"無法取消引用"的錯(cuò)誤,經(jīng)檢查,發(fā)現(xiàn)原來是一個(gè)低級的錯(cuò)誤,hashCode和compareTo的方式是對象的方法,而我直接用的是基本數(shù)據(jù)類型(即代碼中的pslength和pswidth),將其封裝到對象中即可解決問題。
public int hashCode(){
return Double.valueOf(pslength).hashCode();
}
public int compareTo(Object o){
PaperSkin ps = (PaperSkin)o;
int cmp = (Double.valueOf(pslength * pswidth)).compareTo(Double.valueOf(ps.pslength * ps.pswidth));
return cmp;
}
QQ交流群:90623790


















QQ交流群:90623790