因为这种方法保证您可以在编译代码时立即捕捉到问题,所以它是的技术。虽然它看上去有些笨,但是代码可以编译并运行得很好。然而,当您“手指检查”代码时可以立即看到好处了:

  可是编译器不喜欢这样,因为 5 不能被赋值为另一个值。这是我们在 前面 说您应当将编译器看成是您的朋友时所表达的意思。

  您还可以在检查 null 指针时使用这个技巧。看下面的代码:

  如果您偶然将它“误写”成下面这样会发生什么呢?

  您可能不会得到想要的结果。而改用下面的方法您会得到与我们刚描述过的同样的“编译器保护”:

  结束语

  为保持简明扼要我们做了一个相当简洁的归纳:要么现在去做,要么以后花 多得多 的代价去做。换句话说,您在开发周期的早期在测试和预防代码缺陷上花的时间越多,您在以后节省的时间和金钱越多。这是防御性编码的意义。它是这么简单。