【发布时间】:2021-10-15 21:11:24
【问题描述】:
我需要创建 Enum 类进行身份验证。每个枚举都需要存储一个 Map
public enum Auth{
NO_AUTH(new HashMap<>()),
Auth(new HashMap<>());
private Map<String,Set<String>> fields;
private Auth(Map<String,Set<String>> fields){
this.fields = fields;
}
}
我想填满我的地图,像这样:
NO_AUTH(new HashMap<String>().put(1,new HashSet<String>().add("2"));
【问题讨论】:
-
你希望那些是可变的吗?在这种情况下:不要。
enum值应该绝对是不可变的。你可以采取不同的方式,但这是一个非常糟糕的主意。 -
我不想要可变数据。只需存储和阅读。
-
您当前的代码有什么问题?您在向地图添加多个值时遇到问题吗?还是您只是想要一种更清洁的方式?
-
我只是想要一个更干净的方式来做到这一点
-
这实际上只是“如何使用流畅的界面创建地图/设置?”变相。您的代码可以很好地传递
Map.of(1, Set.of(2))作为参数。问题是 HashMap 和 HashSet 上的put和add返回错误的类型。它们不是为流畅使用而设计的。
标签: java