I believe I can fly

虫虫的Blog

  BlogJava :: 首页 :: 新随笔 :: 联系 :: 聚合  :: 管理 ::
  8 随笔 :: 2 文章 :: 2 评论 :: 0 Trackbacks
今天在写一个类型时,需要覆写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
posted on 2009-04-21 21:25 虫虫 阅读(759) 评论(0)  编辑  收藏

只有注册用户登录后才能发表评论。


网站导航: