java - 此方法调用为非空方法参数传递空值。要么将参数注释为应始终为非空的参数
问题描述
以下方法的 SonarQube 错误,任何有关如何解决问题的建议专家 - 此方法调用为非空方法参数传递空值。要么将参数注释为应始终为非空的参数,要么分析表明它将始终被取消引用。
public ByteArrayResource readFile() throws IOException {
byte[] content = null;
try (S3Object object = amazonS3.getObject(new GetObjectRequest(bucketName, key))) {
content = IOUtils.toByteArray(object.getObjectContent());
return new ByteArrayResource(content);
} catch (IOException e) {
LOG.error("IOException caught while reading file", e);
}
return new ByteArrayResource(content);
}
解决方案
问题在于块return new ByteArrayResource(content);
外的语句。try/catch
由于您的方法是 throwing IOException
,因此您不应该抓住它。下面应该解决它:
public ByteArrayResource readFile() throws IOException {
try (S3Object object = amazonS3.getObject(new GetObjectRequest(bucketName, key))) {
byte[] content = IOUtils.toByteArray(object.getObjectContent());
return new ByteArrayResource(content);
}
}
推荐阅读
- javascript - 如何使用 javascript 将数组数组复制到剪贴板
- javascript - 将一些谷歌电子邮件信息提取到谷歌电子表格中
- c++ - 通过 C++ 中的运算符重载赋值
- javascript - 使用 Object.values() 对对象进行排序
- java - Apache-poi:自动调整大小隐藏/截断单元格内值的小数点
- python - 通过字典将条件组合分配给数据框中的新列
- graph - 画面中日期的离散与连续(维度与度量)
- vue.js - 在 v-for 循环中使用时无法识别 v-model
- flutter - 更新持久存储失败 - Galaxy Tab S6/Linux
- python - Deepcopy 不会产生唯一的对象