调整返回true/false的方法

Jam*_* P. 0 java methods boolean

在调整向Java返回true/false的C风格函数时,最佳做法是什么?

这是一个简单的方法来说明问题所在.

public static boolean fileNameEndsWithExtension( String filename, String fileExtension)  { 
    return filename.endsWith( fileExtension );
}
Run Code Online (Sandbox Code Playgroud)

请注意,可能有一种更优雅的过滤文件的方式(随意评论).无论如何,如果filename是一个null值,那么做一个:

  1. 如果filename为null,则返回false?如果是这样,如何区分文件名所在null的情况String和文件名不以给定文件扩展名结尾的情况?
  2. 将返回类型更改为允许null值的包装器类Boolean .
  3. 抛出Exception并强制程序员确保一个null值永远不会传递给方法?
  4. 使用其他方案?

Gar*_*ryF 7

如果filename为null,则应抛出NullPointerException或IllegalArgumentException.我会让你决定哪个是最好的.关于在问题中使用哪个问题存在很好的争论:对于null参数,IllegalArgumentException还是NullPointerException?