Java 在返回流收集器的结果时,如何修复不匹配的类型错误?

Java 在返回流收集器的结果时,如何修复不匹配的类型错误?,java,lambda,java-8,functional-programming,Java,Lambda,Java 8,Functional Programming,我有一段代码: public static List <java.util.Date> map(List <Object[]> queryRows) { List <Object> list = Arrays.asList(queryRows); List <Object> list2 = Arrays.asList(list.get(0)); return ((List) list2.get(0)) .stream

我有一段代码:

public static List <java.util.Date> map(List <Object[]> queryRows) {

  List <Object> list = Arrays.asList(queryRows);
  List <Object> list2 = Arrays.asList(list.get(0));

  return ((List) list2.get(0))
        .stream()
        .map(x -> new java.util.Date(((java.sql.Timestamp) x).getTime()))
        .collect(Collectors.toList());
}
公共静态列表映射(列表查询窗口){
List=Arrays.asList(queryRows);
list2=Arrays.asList(List.get(0));
return((列表)list2.get(0))
.stream()
.map(x->new java.util.Date(((java.sql.Timestamp)x).getTime())
.collect(Collectors.toList());
}
但我有一个编译错误:

Required type:List<java.util.Date>
Provided:Object
所需类型:列表
提供:对象

您需要添加导入语句或将日期更改为java.util.Date。另一个问题是->之间不应该有空白。它应该是->

如果您知道元素的类型是
Timestamp
,那么您应该避免使用原始类型(流的类型没有被推断,并且所有内容都被推断为
对象的原因)并使用

return ((List<java.sql.Timestamp>) list2.get(0))
            .stream()
            .map(x -> new Date(x.getTime()))
            .collect(Collectors.toList());
return((列表)list2.get(0))
.stream()
.map(x->newdate(x.getTime()))
.collect(Collectors.toList());
您可以试试这个

List <Object> list = Arrays.asList(queryRows);
List <Object> list2 = Arrays.asList(list.get(0));

return  Arrays.asList(list2.get(0))
          .stream()
          .map(x -> new java.util.Date(((java.sql.Timestamp) x).getTime()))
          .collect(Collectors.toList());
List List=Arrays.asList(queryRows);
list2=Arrays.asList(List.get(0));
返回Arrays.asList(list2.get(0))
.stream()
.map(x->new java.util.Date(((java.sql.Timestamp)x).getTime())
.collect(Collectors.toList());

这应该可以工作。

将lambda表达式中的返回类型强制转换为
列表

return((列表)list2.get(0))
.stream()
.map(x->newdate((x).getTime())
.collect(Collectors.toList());

什么是
时间戳
java.util.Date
中没有此类对象的构造函数(也不推荐使用)。请修复问题标题:不清楚它与问题的关系(据我所知,它完全不相关)。此外,请不要在问题标题中再次包含标签。把你的标题变成一个简单描述问题的句子。缺少的导入并不能解释OP的错误信息。这是由于不正确的施法造成的。欢迎来到StackOverflow!添加关于为什么这样做有效的信息,而提问者的方法不起作用的信息,将改善答案。
return ((List<Date>) list2.get(0))
                .stream()
                .map(x-> new Date((x).getTime()))
                .collect(Collectors.toList());