StringUtil.isNotBlank(form.getSysId()),PmrExecuteSystemIp::getSysId,from.getSysID())是什么意思
时间: 2023-03-20 18:02:09 浏览: 56
这是一个 Java 代码片段,包含以下三个部分:
1. `StringUtil.isNotBlank(form.getSysId())`:这是一个方法调用,使用了一个名为 `StringUtil` 的工具类,用于判断给定字符串是否为空或仅包含空格。这里 `form.getSysId()` 是获取表单对象的 `sysId` 属性值,用于判断该属性值是否为空或仅包含空格。
2. `PmrExecuteSystemIp::getSysId`:这是一个方法引用,用于获取 `PmrExecuteSystemIp` 类的 `getSysId` 方法的引用。这个方法可能会返回 `PmrExecuteSystemIp` 对象的 `sysId` 属性值。
3. `form.getSysID()`:这是获取表单对象的 `sysID` 属性值。
这些代码的意义可能是在比较三个不同的字符串,以确定它们是否相同或不同。具体来说,如果 `form.getSysId()` 返回的字符串不为空或不仅包含空格,那么可能会使用第二个部分的方法引用获取 `PmrExecuteSystemIp` 对象的 `sysId` 属性值,然后将其与第三个部分的表单对象的 `sysID` 属性值进行比较。
相关问题
.eq(StringUtil.isNotBlank(form.getSysId()),PmrExecuteSystemIp::getSysId,from.getSysID())是什么意思
这是一个Java 8 Lambda表达式,它的作用是根据条件选择一个值。
这个表达式由三个参数组成:
1. 第一个参数 StringUtil.isNotBlank(form.getSysId()) 是一个条件语句,它将检查 form.getSysId() 的值是否为非空白字符串。如果条件成立,则表达式将返回 true,否则返回 false。
2. 第二个参数 PmrExecuteSystemIp::getSysId 是一个方法引用,它引用了 PmrExecuteSystemIp 类的 getSysId() 方法。
3. 第三个参数 from.getSysID() 是一个备用值,它将在条件不成立时返回。
这个表达式的含义是:如果 form.getSysId() 是一个非空白字符串,则返回 PmrExecuteSystemIp 对象的 sysId 属性值。否则,返回 from 对象的 sysId 属性值。
for (CommodityVO good : goods) { StringBuilder name = new StringBuilder(good.getName()); if (StringUtil.isNotBlank(good.getData()) || StringUtil.isNotBlank(good.getAttribute()) || StringUtil.isNotBlank(good.getMaterial())){ name.append("("); } if ((StringUtil.isNotBlank(good.getData()) && StringUtil.isNotBlank(good.getAttribute())) || (StringUtil.isNotBlank(good.getData()) && StringUtil.isNotBlank(good.getMaterial()))) { name.append(good.getData()).append("、"); }else{ name.append(good.getData()); } if (StringUtil.isNotBlank(good.getAttribute()) && StringUtil.isNotBlank(good.getMaterial())) { name.append(good.getAttribute()).append("、"); }else { name.append(good.getAttribute()); } if (StringUtil.isNotBlank(good.getMaterial())) { String[] list = good.getMaterial().split(","); if (list.length > 1){ String join = String.join("/", list); name.append(join); }else { name.append(good.getMaterial()); } } if (StringUtil.isNotBlank(good.getData()) || StringUtil.isNotBlank(good.getAttribute()) || StringUtil.isNotBlank(good.getMaterial())){ name.append(")"); } if (!ObjectUtil.isEmpty(good.getVipMoney())) { good.setMoney(good.getVipMoney()); }}怎么优化更简洁
可以使用 Java 8 的 Stream API 和 Lambda 表达式来简化代码,如下所示:
```
goods.forEach(good -> {
StringBuilder name = new StringBuilder(good.getName());
if (Stream.of(good.getData(), good.getAttribute(), good.getMaterial()).anyMatch(StringUtil::isNotBlank)) {
name.append("(");
}
if (StringUtil.isNotBlank(good.getData())) {
name.append(good.getData());
if (StringUtil.isNotBlank(good.getAttribute()) || StringUtil.isNotBlank(good.getMaterial())) {
name.append("、");
}
}
if (StringUtil.isNotBlank(good.getAttribute())) {
name.append(good.getAttribute());
if (StringUtil.isNotBlank(good.getMaterial())) {
name.append("、");
}
}
if (StringUtil.isNotBlank(good.getMaterial())) {
String[] list = good.getMaterial().split(",");
if (list.length > 1) {
name.append(String.join("/", list));
} else {
name.append(good.getMaterial());
}
}
if (Stream.of(good.getData(), good.getAttribute(), good.getMaterial()).anyMatch(StringUtil::isNotBlank)) {
name.append(")");
}
if (!ObjectUtil.isEmpty(good.getVipMoney())) {
good.setMoney(good.getVipMoney());
}
});
```
使用 Stream API 和 Lambda 表达式可以使代码更加简洁易读,同时还可以提高代码的运行效率。