for (Map<String, String> bedCountMap : bedCountInRoom) { for (Map<String, String> usedBedCountMap : roomUsedBedCount) { if (bedCountMap.get("room_id").equals(usedBedCountMap.get("room_id"))) { if (bedCountMap.get("count").equals(usedBedCountMap.get("count"))) { fullRoomCount++; } break; } } } 报java.lang.ClassCastException: java.math.BigInteger cannot be cast to java.lang.String 错误
时间: 2024-02-14 12:15:29 浏览: 53
java 读取csv 并转为Map<String,Object>
这个错误是因为在你的map中,某些键值对的值类型不是String类型,而是BigInteger类型。因此,在使用get()方法获取值时,程序会尝试将这个BigInteger类型的值转换为String类型,但是类型不兼容,就会报ClassCastException类型转换异常。
你需要检查一下bedCountInRoom和roomUsedBedCount两个list中的map,看看是否有值类型不是String类型的键值对。如果有,你需要将代码中的get()方法替换为正确的获取值的方法。
如果你确定这些值都是数字类型,你可以使用BigInteger的toString()方法将它们转换为String类型。例如:
```
if (bedCountMap.get("count").toString().equals(usedBedCountMap.get("count").toString())) {
fullRoomCount++;
}
```
这段代码将获取到的BigInteger类型的值转换为String类型,然后再进行比较。这样就可以避免ClassCastException异常。
阅读全文