【发布时间】:2022-08-17 23:27:13
【问题描述】:
我有一个枚举AuditType。
还有一个映射Map<String, String>(类字段)需要通过迭代AuditType常量来初始化并根据如果别的健康)状况。
它已使用复杂的双括号初始化 (我实际上并没有写过这段代码)。
现在我正在尝试修复声纳的覆盖范围,因为它抱怨我需要使用另一种方式来初始化此地图。
代码:
Map<String, String> TYPES = new HashMap<String, String>() {
{
Stream.of(AuditType.values()).forEach(auditType -> {
if (AuditType.ACCOUNT_RECORD.equals(auditType)) {
put(AuditCodes.Type.ACCOUNT_ACTIVITY.getCode(), auditType.name());
} else {
String ssCode = AuditCodes.Type.valueOf(auditType.name()).getCode();
put(ssCode, auditType.name());
}
});
}
};
有没有办法在没有双括号初始化的情况下编写它?
-
这是一个字段声明吗?还是它在方法内部的某个地方?
-
抱歉纠正了@AlexanderIvanchenko 的错字。是的 AuditType 是一个枚举。
-
这是在@DawoodibnKareem 方法中
-
@AlexanderIvanchenko - 我实际上并没有编写此代码,我正在尝试修复声纳覆盖范围,因为它会抱怨 -> 使用另一种方式来初始化此实例。但我相信它会创建一个新的哈希图并遍历枚举并基于 if else 条件尝试将这些值放入映射中。
-
我的错,再次检查,它是一个字段声明
标签: java hashmap java-stream anonymous-class