[英]classCastException in Map.Entry
关于我的代码,我有些不了解。 当我执行以下代码时,className1和value1从条目中获取它们的值,但是当className2我获取ClassCastException时,使用getValue = {java.util.Date@11632}处理条目时,日期不能转换为String “太平洋夏令时间1997年6月1日00:00:00”
String key1="", className1="", value1="";
String key2="", className2="", value2="";
Object obj;
Map<String, String> inputValues = reportOptions.getInputValues();
for (Map.Entry<String, String> entry: inputValues.entrySet()){
key1 = entry.getKey().toString();
obj = entry.getValue();
className1 = obj.getClass().getName();
value1 = obj.toString();
className2 = entry.getValue().getClass().getName();
value2 = entry.getValue().toString();
}
应该很简单,但我很想念...
我猜这是因为您得到的Map<String,String>
实际上不是Map<String,String>
而是Map<String,Date>
。
在reportOptions.getInputValues()
您进行了一些不安全的转换,或者您使用的是原始类型,并且地图实际上包含<String, Date>
而不是<String, String>
。
要查找错误,请使用Collections.checkedMap,以便该程序将错误数据准确输入地图的位置炸毁:
java.util.HashMap map = new java.util.HashMap();
map.put(new Integer(4), new Integer(7)); // OK - HashMap does not care, nor does Java
java.util.Map safeMap = java.util.Collections.checkedMap(map,String.class,String.class);
safeMap.put(new Integer(6), new Integer(9)); // WILL blow up!
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.