您可以flatMap
与涉及Stream
的串联和三元运算符混合使用,例如:
List<SimpleProperty> result = top.getSuperComplexProperties().stream()
.flatMap(scp -> Stream.concat(
scp.getSimpleProperties().stream(),
scp.getComplexproperty() == null ?
Stream.empty() :
scp.getComplexproperty().getSimpleProperties().stream()))
.collect(Collectors.toList());