我正在解决SonarQube问题,在该问题中,我遇到了以下错误,但不能确定这是哪种错误,
这是我的实体课
@Entity
@Cacheable
@DynamicUpdate
@org.hibernate.annotations.Cache(usage = CacheConcurrencyStrategy.READ_WRITE)
@Table(name = Vendor.TABLE_NAME)
public class Vendor
{
@Column(name = VENDOR_MODIFIED_BY_FOREIGN_KEY, nullable = true)
private Integer modifiedBy;
public Integer getModifiedBy() {
return modifiedBy == null ? 0 : modifiedBy;
//Boxed value is unboxed and then immediately reboxed in com.bostonbyte.thelift.entities.vendors.Vendor.getModifiedBy()
}
public void setModifiedBy(Integer modifiedBy) {
this.modifiedBy = modifiedBy;
}
我在遇到错误
public Integer getModifiedBy() {
return modifiedBy == null ? 0 : modifiedBy;
您能告诉我这是什么错误吗?
最佳答案
这意味着将原始数据类型自动转换为其等效的Wrapper类型的操作称为装箱,而相反的操作称为拆箱。
在您的代码中,modifiedby
被取消装箱,用于与int value(0)即原始数据类型进行比较,在对值进行比较之后,由于其返回类型为Wrapper类,它将再次被装箱,我认为您应该使用第一个答案,即@jens。