我有一个方法,它将(远程文件的)URL 列表作为应该下载的参数。该方法返回一个其他类型的List(称为Attachment),它实际上包含java File类型的属性。对于本例,我使用 Java Stream API 迭代 URL 并在“map”函数中启动下载,该函数实际上返回 Attachment 实例。
现在我的问题是:我是否滥用 Java Stream API 来做一些不该做的事情?喜欢将长时间运行的任务放入其中吗?我应该只对输入数据进行小操作吗?
我现在看到的唯一缺点是测试有点困难。
private List<Attachment> download(List<URL> attachments) {
return attachments.stream().map(attachmentUrl -> {
try {
Attachment attachment = new Attachment();
File attachmentFile = new File(getFilename(attachment.getAttachmentId(), attachmentUrl));
FileUtils.copyURLToFile(
attachmentUrl,
attachmentFile,
CONNECT_TIMEOUT,
READ_TIMEOUT);
attachment.setAttachmentFile(attachmentFile);
return attachment;
} catch (IOException e) {
e.printStackTrace();
LOGGER.error(e.getLocalizedMessage());
}
return null;
}).filter(Objects::nonNull).collect(Collectors.toList());
}
ABOUTYOU
森栏
相关分类