Java 在这种情况下,如何获得POJO的联合

Java 在这种情况下,如何获得POJO的联合,java,Java,我有以下几点建议: public class ApplicationVersionsData{ private List<MajorVersion> majorVersions; } public class MajorVersion{ private List<Revision> revisions; } public class Revision{ private List<Role> roles; } public c

我有以下几点建议:

public class ApplicationVersionsData{
      private List<MajorVersion> majorVersions;
}
public class MajorVersion{
     private  List<Revision> revisions;
}
public class Revision{
      private List<Role> roles;
}
public class Role{
     private String roleName;
     private List<String> scopes;
}
如果要获取除特定修订版以外的所有角色名称, 最好的方式是什么

请帮助。

这应该可以:

majorVersions
    .stream()
    .flatMap(mv -> mv.revisions())
    .filter(this::isNotParticularRevision)
    .flatMap(revision -> revision.roles())
    .map(role -> role.roleName()).collect(Collectors.toList());
isnotspecifilarrevision(修订版)
根据传递给它的修订是否是要排除的修订,返回
布尔值
true/false。您需要为类
Revision
编写一个
.equals()
方法


编辑:正如下面的一条评论中所提到的,它应该是
mv.revisions().stream()
revision.roles().stream()
在包含列表的每个类中,我将编写一个getter方法
getAllItems()
,其中[Item]被主要版本、修订、角色替换

private List<Item> getAllItems() {
  // return the list
}

@试试看,再也不会回来了。然后是反应流。我想应该是
.flatMap(mv->mv.revisions().stream())
@RAMLNP这解决了你的问题吗?如果是,请考虑接受答案。谢谢
private List<Item> getAllItems() {
  // return the list
}
// I haven't tested this you may need to tweak syntax
for (MajorVersion version : majorVersions) {
  for (Revision revision : version.getAllRevisions()) {
    // print/pass the revision we are currently in

    for (Role role : revision.getAllRoles() {
      // print or return role
    }
  }
}