null值的处理通常被认为是Java的薄弱环节,原因有很多。
最常提及的问题是著名的问题NullPointerException,尽管没有明确的理由说明为什么这是一个问题。毕竟,这只是问题的征兆,而不是问题本身。
实际问题更深。那些具有使用C或C ++编写代码的经验的人都非常了解此问题。在使用C / C ++进行编码时,工程师应始终牢记与访问安全,未定义行为,内存分配,对象复制/移动等有关的无数细微差别。所有这些众多的细节会产生持续的“压力”,消耗宝贵的工程师大脑资源,并导致开发速度降低。即使是核心的C / C ++支持者也不能否认这一事实。
nullJava中的值也存在类似的问题。
Java通常被认为是一种冗长的语言。确实如此。这是其明确性的缺点。Java中几乎所有的意图都可以(通常是)用代码显式表达。通过添加一些额外的文本,我们又获得了可立即访问的上下文,在阅读Java代码时不需要将其携带在头部。这些null值违反了此规则。他们不会在代码中显示自己。
这些null值可能由于各种原因而出现。它可以是默认初始化,从某些方法返回的值,甚至是显式分配的null值。请记住,有时null可能会出现,请检查方法文档或代码中是否有返回此类值的可能-所有这些都会产生与上述C / C ++非常相似的“压力”。
如何解决这个问题?我们如何消除影响生产率的恒定“压力”?
当然,有多种解决方法。
我们可以:
添加@NotNull(或类似)注释。除了添加一些(假)感觉null值以某种方式处理之外,基本上什么都不会做。
建立严格的规则并检查可能存在的每个值null。这是一个可行的解决方案,但是以无数null检
Java中一致的Null值处理
最新推荐文章于 2021-03-08 00:18:27 发布