Происходит нечто ужасное.Целое - это строка - как это может быть?
У меня есть
ArrayList<Integer> activitiesToDelete;
Мне нужно подготовить массив объектов перейти к Spring JdbcTemplate. Однако по какой-то причине элемент в ArrayList рассматривается как String, поэтому прерывается в точке выполнения jdbcTemplate, жалуясь, что он не может преобразовать из String в int. Затем я попытался преобразовать в цикле, чтобы убедиться, что это поможет: - \ И я, очевидно, не могу сделать Integer.parseInt, так как IDE корректно рассматривает его как Integer. Всякий раз, когда я назначаю Integer a = activitiesToDelete.get (i); Это дает мне:
java.lang.ClassCastException: java.lang.String cannot be cast to java.lang.Integer
То же самое для ИНТ а = ... Как это может быть?
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);
Что мне здесь не хватает?
UPDATE: Виновник линия
@RequestMapping(value="/activities/delete", method = RequestMethod.POST) public String deleteActivities(@RequestParam("activityId") ArrayList <Integer> activitiesToDelete)
Это фрагмент связан с Spring MVC, где она будет заселена из формы, кажется, что весна не может добавлять собственные типы в ArrayList.
Любое интересно, либо использовать методы int [] или HttpServlet (хотя бы дополнительный код).
Это наоборот - Integer is *** not *** a String. Проверьте это: activityToDelete - это не то же самое, что и activityIdsToDelete, и он содержит объекты Strings, а не Integer. Это не более чем основная ошибка с вашей стороны, которую мы все часто делаем. Так что никакого пота - исправить. –
Вам не хватает кода, который показывает, как вы заполняете activityToDelete. –
Извините, что это опечатка, которую я сделал здесь, в коде, как и должно быть (спасибо I'l update) – Aubergine