A little confused about the usage of Optional. How to get the same result with Optional?
ModuleEntity module = n.getOutline().getModule()==null?n.getOutline().getParent().getModule():n.getOutline().getModule();
return m.getModule().equals(module)
tried a lot, but always NullpointerException...
eg:
m.getModule().equals(Optional.ofNullable(n.getOutline().getModule()).orElse(n.getOutline().getParent().getModule())))
Here is the complete code:
List<RoleModel> roles = app.getRoles().stream()
.filter(r -> RoleType.MODULE.equals(r.getType()))
.collect(Collectors.toList()).stream()
.map(m -> {
RoleModel role = Entity2ModelUtils.entity2Model(m);
role.setRoles(app.getRoles().stream()
.filter(o -> RoleType.OUTLINE.equals(o.getType()))
.collect(Collectors.toList()).stream()
.filter(n -> m.getModule().equals(Optional.ofNullable(n.getOutline().getModule()).map(zz->n.getOutline().getModule()).orElse(n.getOutline().getParent().getModule())))
.map(z -> Entity2ModelUtils.entity2Model(z))
.collect(Collectors.toList()));
return role;})
.collect(Collectors.toList());