java - "Cannot create generic array of .."- 如何创建 Map<String, Object> 的数组?

标签 java arrays map hashmap

我想使用 simpleJdbcInsert 类和 executeBatch 方法

public int[] executeBatch(Map<String,Object>[] batch)

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]

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

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

最佳答案

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

这应该可以满足您的需要:

Map<String, Object>[] myArray = (Map<String, Object>[]) new Map[10];

您可能想用 @SuppressWarnings("unchecked") 注释发生这种情况的方法, 以防止显示警告。

关于java - "Cannot create generic array of .."- 如何创建 Map<String, Object> 的数组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14917375/

相关文章:

Java:带有字节数组的输入流

java - 数组文本字段

f# - 是在 F# map 上进行迭代还是设置有序遍历?

java - 找到组合,给定 n 个盒子和 x 个球

java - Mockito 的 ExceptionInInitializerError

java - 使用 Android 时 Java 中的随机数

arrays - Swift 中 MemoryLayout.size 中数组的大小

function - 一些编程语言如何区分函数和函数指针?

java - 如何在没有过滤器的情况下调用 guava 谓词?

javascript - 多维数组