ENUM在不同位置的行为如何?

问题描述 投票:-2回答:2
for(MyClass.MYENUM e : MyClass.MYENUM.value){
myHashMap.put(e.name(), randomstuff);
}

myHashMap.get(MyClass.MYENUM);

当我把东西放进去时,为什么我必须使用e.name(),但是当我检索它时,我不必调用e.name()来获取字符串?

java enums
2个回答
0
投票

javadocMapputget的签名显示为:

V put(K key, V value)

V get(Object key)

请注意,key参数的类型不一致。

为什么它们不一致?

我认为答案是与List API的先前版本向后兼容。但是无论出于什么原因,putget 都不一致],我们只需要处理它。

请注意,虽然您的代码可以编译,但实际上不起作用。放置和获取...时,您需要使用相同的键。否则get将返回null


enum在不同位置的行为如何?

不是。实际上,您使用

enum的方式不同……并且错误地……这就是(或将要)导致get失败的原因。

0
投票

Java中的枚举是Enum类型的子类。 Java中的枚举不是String类型。

© www.soinside.com 2019 - 2024. All rights reserved.