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
}
}
}