【发布时间】:2023-01-13 11:16:08
【问题描述】:
如何避免命令式循环并将 Java 的 Streaming API 用于下面提到的 google 目录 API 的实现?
List<GroupMember> groupMemberList = new ArrayList<>();
Directory.Members.List listRequest = getDirectoryApi().members().list(groupEmailAddress);
Members members;
do {
members = listRequest.execute();
members.getMembers().forEach(member -> groupMemberList.add(new
GroupMember(member.getId(), member.getEmail())));
} while (null != members.getNextPageToken());
return groupMemberList;
【问题讨论】:
-
流不是分页的好用例
-
避免命令式循环不是一个明智的目标。目标应该是最大限度地提高可读性……如果您尝试使用 Stream 的 API 将某些任务硬塞到解决方案中,那么某些任务的可读性(或效率)并不高。仅仅因为您买了一把新锤子并不意味着您应该将它用于全部你的木工任务。
-
也许我错了......但是你的代码不应该使用
setNextPageToken()来前进到下一页吗?根据stackoverflow.com/a/31260400/139985? -
@StephenC 你是对的。感谢您指出了这一点。
标签: java java-stream google-directory-api