在 Java 中转换为 List 结果

我有以下方法:

public MenuExpandedDTO findMenuExp(UUID menuUuid) {
    final MenuDTO menu = menuService.findByUuid(menuUuid);
    final MenuPropertiesDTO propertiesDTO = new MenuPropertiesDTO(
            menu.getUuid(),menu.getName()
    );

    final List<GroupExpDTO> groups = menuGroupService
            .findAllByMenuUuid(menuUuid).stream()
            .map(menuGroup -> {
                UUID groupUuid = menuGroup.getGroupUuid();
                return findGroupExp(groupUuid);
            })
            .collect(Collectors.toList());

    return new MenuExpDTO(propertiesDTO,groups,null,null);
}

在此方法中,我传递单个 menuUuid,然后获得单个 MenuPropertiesDTOList<GroupExpDTO> 的组合。

我想传递一个 List<menuUuid> 而不是单个 menuUuid,然后根据此列表中的 uuid 获取结果。但是,我很困惑 Java 中是否有适当的方法。我认为没有必要使用循环,并且可以使用 stream 来评估它。但真的不知道如何构建它或者是否可能。任何帮助将不胜感激。

lxx1990123 回答:在 Java 中转换为 List 结果

如果我从问题和评论中正确理解,您需要一种方法,该方法将以相同的方式工作,但用于 UUID 列表。

要实现这一点,您可以创建新方法,该方法将调用您已实现的方法。

public List<MenuExpandedDTO> findMenuExp(List<UUID> menuUuids) {
    return menuUuids.stream()
        // assuming this method is added to the same class,I'm referring 'this' here
        .map(this::findMenuExp)
        .collect(Collectors.toList());
}

此方法将返回大小等于 menuUuids.size() 的列表,i 的第 List<MenuExpandedDTO> 个元素将对应于 i 列表的第 menuUuids 个元素。

本文链接:https://www.f2er.com/1713.html

大家都在问