gpt4 book ai didi

java - java中枚举的容器

转载 作者:塔克拉玛干 更新时间:2023-11-01 21:46:43 25 4
gpt4 key购买 nike

在 Java 中我可以这样做:

    enum Color {RED, BLUE, GREEN };
enum Weight {LIGHT, HEAVY }

Enum e = Color.RED;
assertEquals(Color.RED, e);
e = Weight.HEAVY;
assertEquals(Weight.HEAVY, e);

我可以将枚举放在一个 Map 中并且仍然有效:

    Map<String, Enum> map = Maps.newHashMap();
map.put("color", Color.RED);
map.put("weight", Weight.HEAVY);
assertEquals(Color.RED, map.get("color"));
assertEquals(Weight.HEAVY, map.get("weight"));

但是,我无法对枚举集合执行相同的操作。

   List<Enum> enumList = new ArrayList<Color>();  //error

这在 Java 中是不允许的还是我只是做错了?

是否有更好的方法来维护属性到代表它们的枚举的映射?

最佳答案

List<? extends Enum> enumList = new ArrayList<Color>();

ColorEnum子类型但是List<Color>List<Enum>不是子类型 .

你必须明确地说“List of something that is subetype of Enum”,这在 Java 中是:

List<? extends Enum>

关于java - java中枚举的容器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24440078/

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