繁体   English   中英

整数是字符串-怎么可能?

[英]Integer is String - how can that be?

发生了非常严重的错误。

我有

ArrayList<Integer> activitiesToDelete;

我需要准备传递给Spring jdbcTemplate的对象数组。 但是由于某种原因,ArrayList中的元素被视为String,因此在执行jdbcTemplate时中断,抱怨它无法从String转换为int。 然后,我尝试在循环中进行转换以查看是否有帮助:-\\而且由于IDE将其正确地视为Integer,我显然无法执行Integer.parseInt。 每当我分配Integer时,a = activityToDelete.get(i); 它给了我:

java.lang.ClassCastException: java.lang.String cannot be cast to java.lang.Integer

int a = ...也是一样...怎么可能?

 Object [] objectList = new Object [activitiesToDelete.size()];

    for (int i = 0; i < activitiesToDelete.size(); i++) {

    Integer a = activitiesToDelete.get(i);

        logger.info(String.valueOf(activitiesToDelete.get(i)));

        objectList[i] = activitiesToDelete.get(i).intValue();
}

    jdbcTemplate.update(sql, objectList);

我在这里想念什么?

更新:罪犯线

  @RequestMapping(value="/activities/delete", method = RequestMethod.POST) public String deleteActivities(@RequestParam("activityId") ArrayList <Integer> activitiesToDelete) 

这是一个与Spring MVC有关的代码片段,它是从表单中填充的,似乎Spring不能向ArrayList添加适当的类型。

任何人都想知道的是使用int []还是HttpServlet方法(不过需要额外的代码)。

我认为问题是

objectList[i] = activitiesToDelete.get(i).intValue(); 

intValue()将Integer转换为int。 一个整数不是一个对象,因此它必须将其转换为一个对象来存储它,我认为它选择了toString。 尝试

objectList[i] = activitiesToDelete.get(i); 

暂无
暂无

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

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