如何通过将数组的第一个元素转换为String来从List<String>
获取List<Object[]>
?
我尝试写下面的内容,但没有发生投射,
List<String> results = query.getResultList()
.stream()
.map(result ->{
Object[] temp = (Object[]) result;
return temp[0].toString();
})
.collect(Collectors.toList());
下图显示了结果列表的类型 我收到错误:java:不兼容的类型:java.lang.Object无法转换为java.util.List。 如何使用Java 8正确执行此操作?
答案 0 :(得分:12)
query.getResultList()
返回原始列表。正如@Makoto在评论中所提到的,尝试使用类型安全的API。
但是如果你打算使用当前的API,添加类型转换(虽然会产生警告)。
List<String> results = ((List<Object[]>) query.getResultList())
.stream()
.map(result -> result[0].toString())
.collect(Collectors.toList());