【问题标题】:Getting type safety conversion获取类型安全转换
【发布时间】:2018-05-24 23:47:01
【问题描述】:

从下面的代码中获取类型安全转换警告。

List<Map<String, Object>> batchValues = new ArrayList<>(entity.size());

int[] noOfRecords = namedParameterJDBCTemplate.batchUpdate(updateQuery, batchValues.toArray(new Map[entity.size()]));

batchValues.toArray(new Map[entity.size()]) 类型安全: Map[] 类型的表达式需要未经检查的转换才能符合 地图[]

如果我在方法级别使用 @SuppressWarnings("unchecked") 这个注解,那么问题就解决了。

解决问题的最佳解决方案是什么?

【问题讨论】:

标签: java


【解决方案1】:

方法声明为&lt;T&gt; T[] toArray(T[] to)

变量的赋值类型为 Map[],但作为方法中的引用,它是 Object[]

由于声明接受&lt;T&gt;,你可以简单地做when作为参数:

batchValues.<Map<String, Object>>toArray(new Map<String, Object>[entity.size()])

【讨论】:

  • 未键入的Map 将生成“未检查”警告。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-01-27
  • 1970-01-01
  • 1970-01-01
  • 2020-01-04
  • 2019-10-28
  • 1970-01-01
相关资源
最近更新 更多