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());
 
     
    