"方法的结果被忽略" - 这意味着什么?

时间:2016-08-16 05:42:54

标签: java android

对于某些方法,我收到警告。这就是扩展后的说法。 以下代码(mkDirs())给出警告

if (!myDir.exists()) {
     myDir.mkdirs();
}
  

报告对忽略该调用结果的特定方法的任何调用。检查用org.jetbrains.annotations.Contract(pure = true)注释的检查设置和方法中指定的两种方法。对于许多方法,忽略结果是完全合法的,但对于某些方法,它几乎肯定是一个错误。忽略调用结果可能是错误的方法示例包括java.io.inputStream.read(),它返回实际读取的字节数,java.lang.String或java.math.BigInteger上的任何方法因为所有这些方法都是无副作用的,因此如果被忽略则毫无意义。

这是什么意思?怎么避免呢?该如何解决?

1 个答案:

答案 0 :(得分:0)

使用注解可以省略警告

@SuppressWarnings("ResultOfMethodCallIgnored")
public void someMethod() {
  ...
  myDir.mkdirs();
  ...
}

如果目录存在,mkdir()操作将返回false,如果不存在,它将被创建(当然,如果你有适当的权限),因此,恕我直言,可以省略通过 isExists() 检查。

但是,如上所述,如果您正在使用此目录,最好确保它存在。