|
|
1
8
整个问题是
减少班级数量
在Java 8中,您可以使用 Optional 方法,以便判断函数何时不总是返回值。这种方法不会强迫您创建任意的空类,从而污染整个结构(也可能需要重构这些空类)。
Eclipse
和
IntelliJ
还提供编译时注释
|
|
|
2
1
使用Null对象而不是
在Java 8中,必须执行以下操作:
因此,如果您有一个方法不断地将同一个对象传递给不同的方法,那么每个方法在使用它之前都需要检查接收到的对象是否为空。
因此,更好的方法是使用Null对象,或者
不需要(真的)进行空检查。事实上,你有一个
空对象没有副作用,因为它通常会 没有什么 (通常所有方法都是空方法),因此不必担心性能(瓶颈/优化等)。 |
|
|
3
0
这种模式的主要区别(可能也是优势)在于清晰。考虑以下方法定义:
此方法计算给定字符串的长度。但争论可能是
通过编写好的java文档可以实现部分解决方案。下一个更好的解决方案是使用注释JSR305注释
但是,如果您使用的是Null对象模式(例如,番石榴或java 8的可选),则代码如下所示:
所以开发人员必须注意将字符串包装为Optional,从而理解参数可以为空。尝试从包含null的Optional中获取值会导致在使用正则表达式时不总是发生异常
显然,使用这种模式会导致一些额外的CPU和内存消耗,这在大多数情况下并不重要。 |
|
|
4
0
假设你有这样的东西:
现在假设在以下情况下存在有效的用例:
通过将空对象与空(no op)方法一起使用,我们避免了样板式的空检查(以及忘记添加所有出现的检查的可能性)。 我经常发现这在异步或可选地初始化某些内容的情况下很有用。 |