首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > J2SE开发 >

Java 泛型,错在哪儿

2012-08-26 
Java 泛型,错在哪里在网上看了一段代码,没明白错在哪里,请高手指点Java codepublic class PairT{private

Java 泛型,错在哪里
在网上看了一段代码,没明白错在哪里,请高手指点

Java code
public class Pair<T>{    private Object first=null;    private Object second=null;    public Pair(Object fir,Object sec){        this.first=fir;    this.second=sec;    }   public Object getFirst(){         return this.first;   }   public Object getSecond(){         return this.second;   }   public void setFirst(Object fir){     this.first=fir;   }   public boolean equals(T value){     return (first.equals(value)&&second.equals(value));   }}


[解决办法]
你equals 你重写的话肯定要和Object的一样啊。。equals(Object obj)
[解决办法]
不然就算重载了而不是重写。楼主要慎重。
[解决办法]
1、就如一楼所说的,如果重写的话 
public boolean equals(T value){
return (first.equals(value)&&second.equals(value));
 }
改成
 public boolean equals(Object value){
return (first.equals(value)&&second.equals(value));
}

2、如果你想写自己的方法的话,把equals这个方法换个其他名字就行了,比如:
 public boolean equals(T value){
return (first.equals(value)&&second.equals(value));
}
改成
 public boolean equal(T value){
return (first.equals(value)&&second.equals(value));
}
[解决办法]
注意:只要覆盖了object的equals方法,
就要一起覆盖hashcode()方法,不然用equals方法会在其他发面带来错误的结果

热点排行
Bad Request.