为什么 IOUtils.closeQuietly 被弃用?
Why is IOUtils.closeQuietly deprecated?
IOUtils.closeQuietly 似乎不赞成使用 TryWithResources,但是当我使用 AmazonS3 和 TransferManager 上传文件时需要关闭异步事件侦听器中的资源时,它如何帮助我?
final String key = rs.getString("id");
final InputStream data = rs.getBinaryStream("data");
final long length = rs.getLong("length");
ObjectMetadata objectMetadata = new ObjectMetadata();
objectMetadata.setContentLength(length);
Upload upload = transferManager.upload(s3bucketName, key, data, objectMetadata);
upload.addProgressListener((com.amazonaws.event.ProgressListener) p -> {
switch (p.getEventType()) {
case TRANSFER_COMPLETED_EVENT:
case TRANSFER_FAILED_EVENT:
case TRANSFER_CANCELED_EVENT:
IOUtils.closeQuietly(data);
default:
break;
}
});
这是弃用它的 Jira issue。根据最近的几条评论,从 2020 年 10 月开始,它似乎不再被弃用。
更新:根据 Release Notes,它在 2.9.0 (2021-05-22) 中未被弃用。
IOUtils.closeQuietly 似乎不赞成使用 TryWithResources,但是当我使用 AmazonS3 和 TransferManager 上传文件时需要关闭异步事件侦听器中的资源时,它如何帮助我?
final String key = rs.getString("id");
final InputStream data = rs.getBinaryStream("data");
final long length = rs.getLong("length");
ObjectMetadata objectMetadata = new ObjectMetadata();
objectMetadata.setContentLength(length);
Upload upload = transferManager.upload(s3bucketName, key, data, objectMetadata);
upload.addProgressListener((com.amazonaws.event.ProgressListener) p -> {
switch (p.getEventType()) {
case TRANSFER_COMPLETED_EVENT:
case TRANSFER_FAILED_EVENT:
case TRANSFER_CANCELED_EVENT:
IOUtils.closeQuietly(data);
default:
break;
}
});
这是弃用它的 Jira issue。根据最近的几条评论,从 2020 年 10 月开始,它似乎不再被弃用。
更新:根据 Release Notes,它在 2.9.0 (2021-05-22) 中未被弃用。