package com.andlinks.yourturn.entity;
/**
* Created by cly on 2017/8/14.
*/
public class T implements Comparable {
private Integer id;
private String name;
public T(){}
public T(Integer id,String name){
this.id=id;
this.name=name;
}
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
@Override
public int hashCode() {
int hashCode=hashCode();
hashCode=hashCode+ (getId()!=null?getId():12);
return hashCode;
}
@Override
public boolean equals(Object obj) {
if(this==obj)return true; //检测this与obj是否引用同一个对象
if(obj==null)return false;//检测obj是否为null,如果为null,返回false。这项检测是很有必要的。
T t=(T)obj;
if(this.getId()==t.getId()&&this.getName()==t.getName()){
return true;
}
return false;
}
@Override
public String toString() {
return super.toString();
}
public static void main(String[] args){
T t=new T();
t.name="alan";
t.id=1;
T b=new T(2,"alan");
if(t.equals(b)){
System.out.print("这是相等的");
}else{
System.out.print("这是不相等的");
}
System.out.println("\n"+t.getClass().getName());
System.out.print(t.compareTo(b));
}
@Override
public int compareTo(Object o) {
T t=(T) o;
int x=this.getId();
int y=t.getId();
if(x>y){
return 1;
}else if(x<y){
return -1;
}else{
return 0;
}
}
}
重写equlas再重写hashcode,是为了提高效率。如果hashcode不相同,就没必要比较equlas了。
比较两个类是否相同就实现Comparable接口就行了啊。然后用自己的逻辑来,我这儿id。