[英]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.