ひどく間違ったことが起こっています。
私は持っている
ArrayList<Integer> activitiesToDelete;
Spring jdbcTemplate に渡すオブジェクトの配列を準備する必要があります。しかし、何らかの理由で ArrayList の要素が String として扱われるため、jdbcTemplate の実行時点で中断し、String から int に変換できないと不平を言います。次に、ループ内で変換して、それが役立つかどうかを確認しようとしました:-\そして、IDEが整数として正しく処理するため、明らかにInteger.parseIntを実行できません。Integer a = activitiesToDelete.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 メソッドを使用してください (ただし、追加のコード)。