"无法创建通用数组.." - 如何创建Map <String,Object>数组?

use*_*650 35 java arrays hashmap map

我想使用simpleJdbcInsert类和executeBatch方法

public int[] executeBatch(Map<String,Object>[] batch)
Run Code Online (Sandbox Code Playgroud)

http://static.springsource.org/spring/docs/2.5.x/api/org/springframework/jdbc/core/simple/SimpleJdbcInsert.html

所以我需要传递一个Map<String,Object>参数数组.如何创建这样的数组?我尝试的是

Map<String, Object>[] myArray = new HashMap<String, Object>[10]
Run Code Online (Sandbox Code Playgroud)

它是错误的:无法创建通用数组 Map<String, Object>

A List<Map<String, Object>>会更容易,但我想我需要一个数组.那么如何创建一个数组Map<String, Object>呢?谢谢

Jon*_*len 61

由于Java中的泛型如何工作,您无法直接创建泛型类型的数组(例如Map<String, Object>[]).相反,您创建一个原始类型(Map[])的数组并将其强制转换为Map<String, Object>[].这将导致不可避免(但可以抑制)的编译器警告.

这应该适合您的需要:

Map<String, Object>[] myArray = (Map<String, Object>[]) new Map[10];
Run Code Online (Sandbox Code Playgroud)

您可能希望使用此方法注释此方法@SupressWarnings("unchecked"),以防止显示警告.