【发布时间】:2021-08-30 11:47:32
【问题描述】:
无法理解如何使用 Stream API 从以下枚举结构中组合 Map<InternalErrorCode, ExternalErrorCode> 变量:
@Getter
@RequiredArgsConstructor
public enum ExternalErrorCode {
// Internal error codes won't be duplicated across any ExternalErrorCode enums
ERROR1(Set.of(InternalErrorCode.FOO, InternalErrorCode.BAR)),
ERROR2(Set.of(InternalErrorCode.ZOO)),
...;
// Expected output should be: [{"FOO","ERROR1"}, {"BAR","ERROR1"}, {"ZOO","ERROR2"}]
private static final Map<InternalErrorCode, ExternalErrorCode> LOOKUP_BY_ERROR_CODE = Stream.of(ExternalErrorCode.values())
.filter(not(externalErrorCode -> externalErrorCode.getErrorCode().isEmpty()))
.collect(groupingBy(...)); // Here is unclarity
private final Set<InternalErrorCode> errorCode;
}
有人可以帮忙吗?
【问题讨论】:
-
最好使用嵌套循环。
标签: java java-stream