这是仍然生成警告的最小例子:
id_nomina_gral
(path是传递给此方法的字符串)
带有cm_nomina_gral
循环的第二行会触发IDE警告:
id
鉴于我刚刚初始化了变量,并且我的程序正常工作,我的第一直觉是这是一个垃圾警告。
这是一个有效的警告,如果是,我该如何清除它?
* EDIT1
文件,根据其Javadoc,如果给它一个空路径,将抛出一个NPE。因此,清除错误似乎是注释cm_valuacion
参数的情况,以便它已知永远不会为空。
答案 0 :(得分:8)
警告的原因是listFiles()在某些条件下将返回null
。根据文档,如果null
未引用目录,或者访问时发生I / O错误,它将返回path
。为了防止这种可能性,并消除警告,你可以这样做:
File searchpath = new File(path);
File[] files = searchpath.listFiles();
if(files == null){
// handle path not a directory, or other error
} else {
for(File file: files){ ... }
}
请参阅https://docs.oracle.com/javase/7/docs/api/java/io/File.html#listFiles()
答案 1 :(得分:1)
每当IntelliJ向我抛出这样的东西时,我通常会发现它符合我的最佳利益,但它只是在一个try-catch块中。
当然,如果你绝对肯定它永远不会失败,那么可能没有意义,但我认为总是考虑所有可能的错误是好的做法,因为这是我们作为程序员的工作。