我想使用 simpleJdbcInsert 类和 executeBatch 方法
public int[] executeBatch(Map<String,Object>[] batch)
所以我需要传递 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/