接口java.util.stream.stream中的方法映射<;T>;无法应用于给定类型;
代码清单:接口java.util.stream.stream中的方法映射<;T>;无法应用于给定类型;,java,exception,lambda,java-stream,apache-commons-dbutils,Java,Exception,Lambda,Java Stream,Apache Commons Dbutils,代码清单: protected List<R> getRows(String startDate, String endDate, Function<MapListHandler, R> func){ ConnectionManager cm = new ConnectionManager(); List<R> rows = null; try(Connection c = cm.getConnection()) {
protected List<R> getRows(String startDate, String endDate, Function<MapListHandler, R> func){
ConnectionManager cm = new ConnectionManager();
List<R> rows = null;
try(Connection c = cm.getConnection()) {
String sql = getSql();
rows = new QueryRunner()
.query(c, sql, new MapListHandler(), startDate, endDate, startDate, endDate)
.stream()
.map(func).collect(Collectors.toList());
} catch (SQLException e) {
e.printStackTrace();
}
finally {
cm.closeConnection();
}
return rows;
}
protectedlist getRows(字符串开始日期、字符串结束日期、函数func){
ConnectionManager cm=新的ConnectionManager();
列表行=null;
尝试(连接c=cm.getConnection()){
字符串sql=getSql();
行=新QueryRunner()
.query(c、sql、new MapListHandler()、startDate、endDate、startDate、endDate)
.stream()
.map(func.collect(Collectors.toList());
}捕获(SQLE异常){
e、 printStackTrace();
}
最后{
cm.闭合连接();
}
返回行;
}
无法编译,并显示以下消息:
接口java.util.stream.stream中的方法映射不能应用于给定类型;
[错误]必需:java.util.function.functionA将导致查询返回列表
这意味着
stream()
将返回流。因此,它的map()
方法需要一个函数。如果我使用map而不是MapHanlderSure,那么代码将编译为Function func
,因为map
是流元素的类型。你的问题是什么?