java 实体类 重复set值 简便写法
时间: 2024-09-06 18:01:11 浏览: 41
在Java中,如果你需要在一个实体类(通常用于持久化数据的POJO -Plain Old Java Object)中处理字段的重复设置,有时可以使用`@Override`注解以及`equals()`、`hashCode()`和`toString()`方法。当你尝试再次调用`setXXX(value)`方法并传入相同的值时,实际上是在比较新旧值是否相等,如果已经存在并且相等,则不会改变。
例如:
```java
public class MyEntity {
private String field;
@Override
public boolean equals(Object obj) {
if (this == obj)
return true;
if (obj == null || getClass() != obj.getClass())
return false;
MyEntity myEntity = (MyEntity) obj;
return Objects.equals(field, myEntity.field);
}
@Override
public int hashCode() {
return Objects.hash(field);
}
// 其他getter和setter
public void setField(String value) {
if (!Objects.equals(this.field, value)) { // 只有当值不同时才赋值
this.field = value;
}
}
}
```
在这个例子中,`setField()`会先通过`equals()`检查值是否已存在,如果不等于则更新。这样做的目的是避免无意义的数据库操作,比如对未更改的值多次写入。
阅读全文