如何在java中创建带有枚举值的映射?
我需要验证作为RESTAPI一部分传递的参数的值。这些参数是一组固定的值。我考虑使用一个映射,将参数名作为键,枚举作为值。因此,我可以检查RESTAPI中发送的值是否是枚举键之一 但我无法在java中创建带有字符串键和枚举值的映射,尝试创建映射,然后将和枚举作为值,但失败了如何在java中创建带有枚举值的映射?,java,string,dictionary,enums,Java,String,Dictionary,Enums,我需要验证作为RESTAPI一部分传递的参数的值。这些参数是一组固定的值。我考虑使用一个映射,将参数名作为键,枚举作为值。因此,我可以检查RESTAPI中发送的值是否是枚举键之一 但我无法在java中创建带有字符串键和枚举值的映射,尝试创建映射,然后将和枚举作为值,但失败了 class Validation { enum Type { INTERNAL, EXTERNAL }; } Map<String, Object> valid
class Validation {
enum Type {
INTERNAL,
EXTERNAL
};
}
Map<String, Object> validationMap = new HashMap<String, Object>();
validationMap.put("type", Validation.Type);
类验证{
枚举类型{
内部的
外部的
};
}
Map validationMap=newhashmap();
validationMap.put(“type”,Validation.type);
这引发了一个类型未定义的错误。这可能就是您要查找的,
Map
更改为Map
:
Map validationMap=newhashmap();
validationMap.put(“type”,Validation.type.INTERNAL);
validationMap.put(“type2”,Validation.type.EXTERNAL);
例如,如果您将
Validation.type
更改为Validation.type.INTERNAL
,您的原始代码本来可以工作,但是validationMap
map允许存储任何对象,因此validationMap.put(“type2”,123.123)代码>也会起作用,这不太可能是您想要的。这可能是您正在寻找的,Map
更改为Map
:
Map validationMap=newhashmap();
validationMap.put(“type”,Validation.type.INTERNAL);
validationMap.put(“type2”,Validation.type.EXTERNAL);
例如,如果您将Validation.type
更改为Validation.type.INTERNAL
,您的原始代码本来可以工作,但是validationMap
map允许存储任何对象,因此validationMap.put(“type2”,123.123)代码>也会起作用,这不太可能是您想要的。这就是您需要的吗
Map<String, List<Validation.type>> validationMap = new HashMap<>();
validationMap.put("type",
Arrays.asList(Validation.type.EXTERNAL,Validation.type.INTERNAL));
Map validationMap=newhashmap();
validationMap.put(“类型”,
asList(Validation.type.EXTERNAL,Validation.type.INTERNAL));
这就是你需要的吗
Map<String, List<Validation.type>> validationMap = new HashMap<>();
validationMap.put("type",
Arrays.asList(Validation.type.EXTERNAL,Validation.type.INTERNAL));
Map validationMap=newhashmap();
validationMap.put(“类型”,
asList(Validation.type.EXTERNAL,Validation.type.INTERNAL));
你到底想做什么?例如,Validation.type.class
将编译;但这真的能满足您的需要吗?请确保遵循Java命名约定:类和枚举名称始终以大写开头,即类型
应该是类型
。是否需要映射
?Will(更正大小写)Validation.Type.valueOf()
不起作用?@AndyTurner:Validation.Type.class解决了编译问题,但我不知道如何使用该类创建一个实例。您实际想做什么?例如,Validation.type.class
将编译;但这真的能满足您的需要吗?请确保遵循Java命名约定:类和枚举名称始终以大写开头,即类型
应该是类型
。是否需要映射
?Will(更正大小写)Validation.Type.valueOf()
无效?@AndyTurner:Validation.Type.class解决了编译问题,但我不知道如何使用该类重新创建实例。我喜欢将enum作为值而不是enum的属性。我喜欢将enum作为值而不是enum的属性。