JDK的 rt 包 下 的Objects 工具类:
public static int hash(Object... values) {
return Arrays.hashCode(values);
}
Arrays类:
public static int hashCode(Object a[]) {
if (a == null)
return 0;
int result = 1;
for (Object element : a)
result = 31 * result + (element == null ? 0 : element.hashCode());
return result;
}
@Override
public boolean equals(Object other){
if (this == other){
return true;
}
if (null == other){
return false;
}
if (!(other instanceof NeedVo)){
return false;
}
NeedVo o = (NeedVo)other;
return Objects.equals(this.goodsId,o.goodsId) && Objects.equals(this.commodityNameLocal,o.commodityNameLocal);
}
完整的
@Data
public class NeedVo {
private String goodsId;
private String commodityNameLocal;
private String commodityNameEnglish;
@ApiModelProperty("配图")
private String picUrl;
@ApiModelProperty("原价")
private BigDecimal originalPrice;
@ApiModelProperty(value = "商品库存")
private Integer stock;
@ApiModelProperty("销量")
private Integer sales;
/**
* 重写equals、hashCode 注意:只比较goodsId、commodityNameLocal
*/
@Override
public boolean equals(Object other){
if (this == other){
return true;
}
if (null == other){
return false;
}
if (!(other instanceof NeedVo)){
return false;
}
NeedVo o = (NeedVo)other;
return Objects.equals(this.goodsId,o.goodsId) && Objects.equals(this.commodityNameLocal,o.commodityNameLocal);
}
@Override
public int hashCode(){
return Objects.hash(goodsId,commodityNameLocal);
}
}