Java:空检查的最佳实践

Java:空检查的最佳实践,java,Java,我知道,在java中,对公共API中的每个参数进行NULL检查是一种很好的做法。但奇怪的是,我们是否需要在所有方法前面进行这种空检查。这样做肯定有价值:更早地捕捉错误并提供更好的错误消息。但是值得吗?我的意思是,在所有方法中执行相同的空检查似乎太单调乏味了。如果需要的话,为什么JVM在默认情况下无法完成作业 请分享您的想法。通常最简单的方法是简单地声明变量或方法,这样它们就不会返回空值。然而,有时这是不可避免的,就像在API中的一些现有方法中一样,一些自行创建的方法和变量需要设置空值。就我个人而

我知道,在java中,对公共API中的每个参数进行NULL检查是一种很好的做法。但奇怪的是,我们是否需要在所有方法前面进行这种空检查。这样做肯定有价值:更早地捕捉错误并提供更好的错误消息。但是值得吗?我的意思是,在所有方法中执行相同的空检查似乎太单调乏味了。如果需要的话,为什么JVM在默认情况下无法完成作业


请分享您的想法。

通常最简单的方法是简单地声明变量或方法,这样它们就不会返回空值。然而,有时这是不可避免的,就像在API中的一些现有方法中一样,一些自行创建的方法和变量需要设置空值。就我个人而言,我建议尽可能避免使用null值——最好从一开始就声明一个变量,或者在某个操作失败时使用一个方法返回,例如-1而不是null。不过,一般来说,如果您知道某个变量或方法可能有空值,那么为了安全起见,应该在开始时进行空检查


希望这对你有所帮助,祝你好运

通常最简单的方法是简单地声明变量或方法,这样它们就不会返回null。然而,有时这是不可避免的,就像在API中的一些现有方法中一样,一些自行创建的方法和变量需要设置空值。就我个人而言,我建议尽可能避免使用null值——最好从一开始就声明一个变量,或者在某个操作失败时使用一个方法返回,例如-1而不是null。不过,一般来说,如果您知道某个变量或方法可能有空值,那么为了安全起见,应该在开始时进行空检查

希望这对你有所帮助,祝你好运

如果需要的话,为什么JVM在默认情况下无法完成作业

是的!它检查值是否为null,如果不是,则抛出
NullPointerException
。在许多情况下,这是适当的行为,您不需要改变它

如果需要的话,为什么JVM在默认情况下无法完成作业


是的!它检查值是否为null,如果不是,则抛出
NullPointerException
。在许多情况下,这是适当的行为,您无需更改。

最佳做法:避免
null
。如果它存在,尽早检查,然后保证它不会再发生,即避免再次发生。它确实存在,当它发现空值时,抛出一个NPE。JVM无法理解您的意图。检查null是否会在触发NPE之前造成损害,或者null是否是您不想尝试调用方法的合法值,或者您是否可以说一些比NPE更有用的话。否则呢。让Java抛出一个异常,该异常表示“嘿,dummy,这里不应该有null!”最佳实践:避免
null
。如果它存在,尽早检查,然后保证它不会再发生,即避免再次发生。它确实存在,当它发现空值时,抛出一个NPE。JVM无法理解您的意图。检查null是否会在触发NPE之前造成损害,或者null是否是您不想尝试调用方法的合法值,或者您是否可以说一些比NPE更有用的话。否则呢。让Java抛出一个异常,该异常表示“嘿,dummy,这里不应该有null!”-1在大多数情况下甚至比null更糟糕。至少对于null,如果调用方不考虑失败,它可能最终导致异常。不过,通常情况下,自己抛出一个异常比依靠调用方检查错误要好。我没有想到这一点,这是一个很好的观点。使用null比使用-1更容易跟踪问题。谢谢你,@cHao-1在大多数情况下甚至比null更糟糕。至少对于null,如果调用方不考虑失败,它可能最终导致异常。不过,通常情况下,自己抛出一个异常比依靠调用方检查错误要好。我没有想到这一点,这是一个很好的观点。使用null比使用-1更容易跟踪问题。赵说,谢谢你