考虑我有以下 bean :
@Entity
public class Currency {
private String currency;
public String getCurrency() {
return currency;
}
public void setCurrency(String currency) {
this.currency = currency;
}
}
@Entity
public class SomeEntity {
private Currency currency;
public Currency getCurrency() {
return currency;
}
public void setCurrency(Currency currency) {
this.currency = currency;
}
}
我有 SomeEntity 的实例:
SomeEntity entity;
在代码中的某个位置,我想使用某些实体的属性,但实体可能为 null
并且某些实体的属性可能为 null
,所以我当前的代码实现远非易于阅读:
new ConstantExpression(entity == null ? null :entity.getCurrency() != null ?entity.getCurrency().getId() : null)
对于这种情况,有什么方法可以提高代码的可读性吗?
更新:我的代码库足够大,所以Null object pattern实现需要大量修改。另外,我的bean是用JPA持久化到数据库的,所以我必须做额外的编码,比如级联注释等。
最佳答案
您可以使用Null Object Pattern .
- 创建一个Currency 子类,其中
getId()
始终返回null
- 拥有此类的单个实例,用于初始化所有
currency
字段。 - 现在
getCurrency().getId()
是安全的。 - 如果您愿意,可以对
SomeEntity
重复相同的操作
关于java - 避免对 bean 属性进行大量 != null 检查,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12834864/