繁体   English   中英

java.lang.ClassCastException:java.lang.String 无法转换为 java.util.Map

[英]java.lang.ClassCastException: java.lang.String cannot be cast to java.util.Map

我正在研究 CodeName One,但在从数据库中检索数据时遇到此错误。

问题在于类型为 date 的元素 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;
}

你可以做的是将你从 map 获得的日期字符串转换为 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;
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM