在网上看了一段代码,没明白错在哪里,请高手指点
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));
}
}
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));
}
}
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));
}
就要一起覆盖hashcode()方法,不然用equals方法会在其他发面带来错误的结果
+1,尤其是在用类的引用类型做 equals比较的时候要注意