使用Hashmap调试foreach时出错



我有这个代码:

for (RoomProperties RP : roomHashMap.values()) {
canvas.drawRect(RP.left, RP.top, RP.right, RP.bottom, snowWhite);
}

它是经过正确编译的。但是矩形根本不会被绘制出来,所以我进入了调试模式,确信存在以下错误:

RP.left找不到本地变量"RP"RP.right找不到本地变量"RP">

现在,这实际上令人困惑。假设我没有正确地获得for each,但为什么要编译并运行它???

做foreach的正确方法是什么?编译器没有报告错误(我可能忽略了警告)有什么问题?

我怀疑您看到的找不到本地变量消息是调试器通知您它无法为您解析本地变量。在这种情况下,它根本不是运行时问题,并且可以通过确保在编译java代码时启用"生成调试信息"或类似选项来轻松修复。这将为编译的代码添加额外的信息,以帮助调试器。祝你调试顺利!

最新更新