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());