【发布时间】:2017-06-23 14:15:55
【问题描述】:
经过一个小时的调查,我遇到了一个即使我的教授也无法解决的问题:我有一张地图,其中存储了每个级别的高分值,其中级别保存为字符串,整数表示高分。 现在,当我尝试读取一个关卡的最高分时,我遇到了一个非常奇怪的问题:在调用读取最高分的方法时,我收到一个错误提示
java.lang.String cannot be cast to java.lang.Integer
代码如下
public Map<String, Integer> highscores = new HashMap<>();
highscores.put("Level1", 35); //Example, we read it from a file
int highscore = highscores.get("Level1");
错误发生在第三行。有谁知道为什么会这样? Integer.parseInt 也不起作用,因为该方法说它需要一个字符串而不是整数作为参数,这意味着该行的右侧实际上是一个整数。非常感谢任何帮助。
【问题讨论】:
-
"例如,我们从文件中读取" 你如何从文件中读取?请出示该代码;这段代码工作得很好。
-
无repro,我猜这是简化版,请发minimal reproducible example。您可能在某处使用原始类型?
-
这可能是在 JSF 页面上完成的吗?
-
我的手指悬停在 "What is a raw type and why shouldn't we use it?" 的欺骗锤上。
标签: java dictionary hashmap