今天在寫一個類型時,需要覆寫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;
}
編譯的時候,出現了"無法取消引用"的錯誤,經檢查,發現原來是一個低級的錯誤,hashCode和compareTo的方式是對象的方法,而我直接用的是基本數據類型(即代碼中的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