gpt4 book ai didi

java - 无法从传入的键中找到 HashMap 中的关联值

转载 作者:行者123 更新时间:2023-12-01 07:32:16 25 4
gpt4 key购买 nike

我正在使用 Eclipse 项目中的一些现有代码。在下面名为 cardTypeForPbfValue() 的方法中,我无法在 HashMap 中找到 key ,即使我在调试代码时可以看到它。 pbfValueMap 填充如下:

[1=ATM, 2=DEBIT, 3=CREDIT, 4=PAYROLL]

我不确定为什么当我在下面的 cardTypeForPbfValue() 中传递值 3 时无法获取 CREDIT 的关联值。我实际上得到的值是NULL

任何帮助/指导将不胜感激。

这是我正在使用的代码:

public static enum CardType {
CREDIT(3),
ATM(1),
DEBIT(2),
PAYROLL(4);
CardType(int pbfValue) {
this.pbfValue = (short) pbfValue;
}

public static HashMap<Short, CardType> pbfValueMap = new HashMap<Short, CardType>();
static {
for (CardType cardType : CardType.values()) {
short value = cardType.pbfValue;
pbfValueMap.put(cardType.pbfValue, cardType);
}
}

public static CardType **cardTypeForPbfValue**(int pbfValue) {
CardType returnValue = pbfValueMap.get(pbfValue);
if (returnValue == null) {
returnValue = DEBIT;
}
return returnValue;
}

public short pbfValue;
}

最佳答案

您正在查找一个Integer,但您在 map 中放入了一个Short。试试这个:

public static CardType cardTypeForPbfValue(int pbfValue) {
Short shortPbfValue = (short) pdbValue;
CardType returnValue = pbfValueMap.get(shortPbfValue);
...
}

更好的是,停止在任何地方使用 int(或停止在 map 中使用 short) - 只要与您想要使用的类型保持一致即可。

关于java - 无法从传入的键中找到 HashMap 中的关联值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16446922/

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