gpt4 book ai didi

java - Sonar lint 报告空可能点异常

转载 作者:行者123 更新时间:2023-12-02 02:23:39 26 4
gpt4 key购买 nike

Sonar lint 报告 for 循环内下面的 Java 代码片段可能存在空点异常: for (文件 fileEntry :folder.listFiles()) {。.}

请问有什么办法可以解决这个问题吗?方法如下:

private ArrayList<String> listFileNamesInFolder(final File folder) {

ArrayList<File> fileList = new ArrayList<File>();
ArrayList<String> fileNameList = new ArrayList<String>();

for (File fileEntry : folder.listFiles()) {
assertNotNull(fileEntry);
if (fileEntry.isDirectory()) {
listFileNamesInFolder(fileEntry);
} else {
if(fileEntry.getName().endsWith(".csv")) {
fileList.add(fileEntry);
fileNameList.add(fileEntry.getName());
setTestInfo(fileEntry.getName());
}
}
}
return fileNameList;
}

最佳答案

FilelistFiles 的 Javadoc 表示它返回:

An array of abstract pathnames denoting the files and directories in the directory denoted by this abstract pathname. The array will be empty if the directory is empty. Returns null if this abstract pathname does not denote a directory, or if an I/O error occurs.

因为这可能返回 null,因此您可能需要在迭代数组之前检查该值,以防止出现 NullPointerException,例如:

File[] fileEntries = folder.listFiles();
if (fileEntries == null) {
// ...
} else {
for (final File fileEntry : fileEntries) {
// ...
}
}

fileEntriesnull时,您可以选择抛出异常,或返回空列表。

关于java - Sonar lint 报告空可能点异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48097925/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com