java.lang.ClassCastException: java.lang.String 无法转换为 java.util.Map
java.lang.ClassCastException: java.lang.String cannot be cast to java.util.Map
我正在开发 CodeName One,但在从数据库中检索数据时出现此错误。
问题出在日期类型的元素上
json 响应运行良好,其他属性显示成功。
这是我的代码,希望有人能帮助我。提前谢谢你。
private Concour parseConcours(Map<String, Object> map) {
Concour c = new Concour();
c.setId(((Double) map.get("id")).intValue());
c.setSujet(map.get("sujet").toString());
c.setNom(map.get("nom").toString());
c.setImageName(map.get("imageName").toString());
c.setDescription(map.get("description").toString());
c.setCategorie(map.get("categorie").toString());
c.setCouleur(map.get("couleur").toString());
c.setDateDebut(new Date((((Double) ((Map<String, Object>) map.get("dateDebut")).get("timestamp")).longValue() * 1000)));
c.setDateFin(new Date((((Double) ((Map<String, Object>) map.get("dateFin")).get("timestamp")).longValue() * 1000)));
return c;
}
你可以做的是将从地图获得的日期字符串转换为 simpledateformat,然后在 setter 方法中分配它,如下所示。
c.setDateDebut(new SimpleDateFormat("dd/MM/yyyy").parse(map.get("dateDebut")));
c.setDateFin(new SimpleDateFormat("dd/MM/yyyy").parse(map.get("dateFin")));
试试这个:
try {
Date date1 = new SimpleDateFormat("yyyy-MM-dd").parse(sDate1);
c.setDateDebut(date1);
}
catch (ParseException ex) {
System.out.println(ex.getMessage());
}
我正在开发 CodeName One,但在从数据库中检索数据时出现此错误。
问题出在日期类型的元素上 json 响应运行良好,其他属性显示成功。
这是我的代码,希望有人能帮助我。提前谢谢你。
private Concour parseConcours(Map<String, Object> map) {
Concour c = new Concour();
c.setId(((Double) map.get("id")).intValue());
c.setSujet(map.get("sujet").toString());
c.setNom(map.get("nom").toString());
c.setImageName(map.get("imageName").toString());
c.setDescription(map.get("description").toString());
c.setCategorie(map.get("categorie").toString());
c.setCouleur(map.get("couleur").toString());
c.setDateDebut(new Date((((Double) ((Map<String, Object>) map.get("dateDebut")).get("timestamp")).longValue() * 1000)));
c.setDateFin(new Date((((Double) ((Map<String, Object>) map.get("dateFin")).get("timestamp")).longValue() * 1000)));
return c;
}
你可以做的是将从地图获得的日期字符串转换为 simpledateformat,然后在 setter 方法中分配它,如下所示。
c.setDateDebut(new SimpleDateFormat("dd/MM/yyyy").parse(map.get("dateDebut")));
c.setDateFin(new SimpleDateFormat("dd/MM/yyyy").parse(map.get("dateFin")));
试试这个:
try {
Date date1 = new SimpleDateFormat("yyyy-MM-dd").parse(sDate1);
c.setDateDebut(date1);
}
catch (ParseException ex) {
System.out.println(ex.getMessage());
}