reqVo.getBusiTypeId()==null?null:new BigDecimal(reqVo.getBusiTypeId()) 如何简化
时间: 2024-04-13 15:29:26 浏览: 17
你可以使用 Java 8 的 Optional 类来简化这段代码。可以将条件表达式中的三元运算符替换为 `map` 方法,并使用 `orElse` 方法指定默认值。以下是简化后的代码示例:
```java
Optional.ofNullable(reqVo.getBusiTypeId())
.map(BigDecimal::new)
.orElse(null);
```
这样就能够简化判断和转换的过程,如果 `reqVo.getBusiTypeId()` 为 null,则返回 null;否则将其转换为 BigDecimal 对象。
相关问题
xwAttr.setAttrId(new BigDecimal(reqVo.getAttrId())); xwAttr.setBusiTypeId(Optional.ofNullable(reqVo.getBusiTypeId()).map(BigDecimal::new).orElse(null)); xwAttr.setParAttrId(Optional.ofNullable(reqVo.getParAttrId()).map(BigDecimal::new).orElse(null)); xwAttr.setAttrNbr(reqVo.getAttrNbr()); xwAttr.setAttrName(reqVo.getAttrName()); xwAttr.setAttrDesc(reqVo.getAttrDesc()); xwAttr.setDefaultValue(reqVo.getDefaultValue()); xwAttr.setValueFrom(reqVo.getValueFrom()); xwAttr.setValueTo(reqVo.getValueTo()); xwAttr.setIsUnique(new BigDecimal(reqVo.getIsUnique())); xwAttr.setIsNullable(new BigDecimal(reqVo.getIsNullable())); xwAttr.setAttrValueDataType(reqVo.getAttrValueDataType()); xwAttr.setIsDanyAttr(new BigDecimal(reqVo.getIsDanyAttr())); xwAttr.setAttrValueType(reqVo.getAttrValueType()); xwAttr.setAttrFormat(reqVo.getAttrFormat()); xwAttr.setAttrLength(new BigDecimal(reqVo.getAttrLength())); xwAttr.setStatusCd(reqVo.getStatusCd()); xwAttr.setUpdateStaff(new BigDecimal(reqVo.getUpdateStaff())); xwAttr.setStatusDate(new Date()); xwAttr.setUpdateDate(new Date()); xwAttr.setRemark(reqVo.getRemark()); xwAttr.setUnitCd(new BigDecimal(reqVo.getUnitCd())); xwAttr.setExtAttrId(reqVo.getExtAttrId()); xwAttr.setGrpAttrNbr(reqVo.getGrpAttrNbr()); xwAttr.setShowFlag(new BigDecimal(reqVo.getShowFlag())); xwAttr.setModFlag(new BigDecimal(reqVo.getModFlag())); xwAttr.setFormatMsg(reqVo.getFormatMsg()); xwAttr.setHasLinkCtrl(reqVo.getHasLinkCtrl()); xwAttr.setPrivCode(reqVo.getPrivCode()); xwAttr.setBusiObjNbr(reqVo.getBusiObjNbr());将reqVo中获取的属性全判空后再放入xwAttr
你可以使用 Java 8 的 Optional 类和流式操作来简化这段代码。可以通过创建一个方法来处理属性的判空和转换,并使用流式操作将所有属性进行处理。以下是简化后的代码示例:
```java
private BigDecimal getBigDecimalValue(String value) {
return Optional.ofNullable(value)
.map(BigDecimal::new)
.orElse(null);
}
// ...
xwAttr.setAttrId(getBigDecimalValue(reqVo.getAttrId()));
xwAttr.setBusiTypeId(getBigDecimalValue(reqVo.getBusiTypeId()));
xwAttr.setParAttrId(getBigDecimalValue(reqVo.getParAttrId()));
xwAttr.setAttrNbr(reqVo.getAttrNbr());
xwAttr.setAttrName(reqVo.getAttrName());
xwAttr.setAttrDesc(reqVo.getAttrDesc());
xwAttr.setDefaultValue(reqVo.getDefaultValue());
xwAttr.setValueFrom(reqVo.getValueFrom());
xwAttr.setValueTo(reqVo.getValueTo());
xwAttr.setIsUnique(getBigDecimalValue(reqVo.getIsUnique()));
xwAttr.setIsNullable(getBigDecimalValue(reqVo.getIsNullable()));
xwAttr.setAttrValueDataType(reqVo.getAttrValueDataType());
xwAttr.setIsDanyAttr(getBigDecimalValue(reqVo.getIsDanyAttr()));
xwAttr.setAttrValueType(reqVo.getAttrValueType());
xwAttr.setAttrFormat(reqVo.getAttrFormat());
xwAttr.setAttrLength(getBigDecimalValue(reqVo.getAttrLength()));
xwAttr.setStatusCd(reqVo.getStatusCd());
xwAttr.setUpdateStaff(getBigDecimalValue(reqVo.getUpdateStaff()));
xwAttr.setStatusDate(new Date());
xwAttr.setUpdateDate(new Date());
xwAttr.setRemark(reqVo.getRemark());
xwAttr.setUnitCd(getBigDecimalValue(reqVo.getUnitCd()));
xwAttr.setExtAttrId(reqVo.getExtAttrId());
xwAttr.setGrpAttrNbr(reqVo.getGrpAttrNbr());
xwAttr.setShowFlag(getBigDecimalValue(reqVo.getShowFlag()));
xwAttr.setModFlag(getBigDecimalValue(reqVo.getModFlag()));
xwAttr.setFormatMsg(reqVo.getFormatMsg());
xwAttr.setHasLinkCtrl(reqVo.getHasLinkCtrl());
xwAttr.setPrivCode(reqVo.getPrivCode());
xwAttr.setBusiObjNbr(reqVo.getBusiObjNbr());
```
通过使用 `getBigDecimalValue` 方法,可以将属性的判空和转换逻辑封装起来,避免了重复的代码。然后,将所有属性通过流式操作一一处理,使代码更加简洁和易读。
bigdecimal.compareto()能传null?
引用\[1\]: if( res == 0 ) System.out.println( str1 ); else if( res == 1 ) System.out.println( str2 ); else if( res == -1 ) System.out.println( str3 ); } } 。
问题:bigdecimal.compareto()能传null?
回答: 根据提供的代码片段,无法确定`bigdecimal.compareto()`方法是否可以传递`null`作为参数。根据Java BigDecimal类的文档,`compareTo()`方法的参数应该是一个`BigDecimal`对象,而不是`null`。如果将`null`传递给`compareTo()`方法,可能会导致`NullPointerException`异常。因此,在使用`compareTo()`方法之前,应该确保参数不为`null`。
#### 引用[.reference_title]
- *1* [解读Java中BigDecimal.ZERO.compareTo()的返回值含义](https://blog.csdn.net/doinbb/article/details/82668105)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control,239^v3^insert_chatgpt"}} ] [.reference_item]
[ .reference_list ]