gpt4 book ai didi

java - 如何在 HashMap 中保存枚举类?

转载 作者:行者123 更新时间:2023-11-29 07:40:05 33 4
gpt4 key购买 nike

假设我们有以下枚举:

public enum AnimalImages {
TIGER,BEAR,WOLF;
}

public enum CarImages {
BMW,VW,AUDI;
}

现在我想将这些枚举类保存在一个 HashMap 中:

Map<String,Enum<?>> enumMap=new HashMap<String,Enum<?>>();
enumMap.put("AnimalImages",???????);

我应该输入什么而不是问号?

最佳答案

要明确回答您的问题,您必须将枚举值设置为:

Map<String,Enum<?>> enumMap=new HashMap<String,Enum<?>>();
enumMap.put("AnimalImages", AnimalImages.TIGER);

但是,如果您想将属于枚举的所有值放入其中,那么您可以利用 values()方法并将 map 更改为 Map<String,Enum<?>[]>所以你可以使用这个:

Map<String,Enum<?>[]> enumMap=new HashMap<String,Enum<?>[]>();  // Note Enum<?>[] array
enumMap.put("AnimalImages", AnimalImages.values());
enumMap.put("CarImages", CarImages.values());

另一种方法,使用较短的签名可以是这样的:

Map<String, Object> enumMap = new HashMap<String,Object>();
enumMap.put("AnimalImages", AnimalImages.values());
enumMap.put("CarImages", CarImages.values());

另一种方式 bali182 指出这个评论,你可以使用:

Map<String, Collection<? extends Enum<?>>> enumMap = new HashMap<>();
enumMap.put("AnimalImages", Arrays.asList(AnimalImages.values()));
enumMap.put("CarImages", Arrays.asList(AnimalImages.values()));

关于java - 如何在 HashMap 中保存枚举类?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31104584/

33 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com