如何判断两个对象相等

也就是如何重写hashCode和equals方法?因为model类自动生成只能在子model中写但是写了没有生效。

评论区

JFinal

2020-07-17 16:15

一般来说调用父类的就可以:
hashCode() {
return super.hashCode();
}

equals 也差不多

CliveNo.1

2020-07-20 17:36

@JFinal 您好,这个我知道但是我在model中重写了对象的hashCode方法无法生效下面是代码:
/**
* Generated by JFinal.
*/
@SuppressWarnings("serial")
public class AsColumn extends BaseAsColumn {
public static final AsColumn dao = new AsColumn().dao();
public static final String SEQ_NEXTVAL = "SEQ_COLUMN.nextval";
@Override
public int hashCode() {
String name = getName();
return name.hashCode();
}
@Override
public boolean equals(Object o) {
String name = getName();
AsColumn c =(AsColumn) o;
return AsColumn.class.getName().equals(c.getName());
}
}

JFinal

2020-07-20 23:03

@CliveNo.1 你的 equals、hashCode 是错误的写法,会有严重的问题,建议看一下 effective java 这本书里面讲的这两个知识

这本书网上有电子版本下载

热门反馈

扫码入社