您需要引入一个工厂来创建
MonitoredData,例如,我正在使用a
Function来创建
MonitoredDatafrom
String[]:
Function<String[],MonitoredData> factory = data->{ DateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); try{ return new MonitoredData(format.parse(data[0]),format.parse(data[1]),data[2]); // ^--startingTime ^--finishingTime ^--label }catch(ParseException ex){ throw new IllegalArgumentException(ex); }};然后,
您的代码在流上进行操作应如下所示,并且您不需要使用Collectors#toCollection强制转换结果:
list = stream.map(line -> line.split("tt")).map(factory::apply) .collect(Collectors.toCollection(ArrayList::new));


