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)方法一起使用,我们避免了样板式的空检查(以及忘记添加所有出现的检查的可能性)。 我经常发现这在异步或可选地初始化某些内容的情况下很有用。 |
magisterludi · R中条件下的组变量和和和 2 年前 |
Navi · if语句在函数中不能解释为逻辑语句 2 年前 |
Loz · 如果满足条件,则覆盖变量,否则保留现有值R 2 年前 |
kaitlynmm569 · 条件格式应用不正确 2 年前 |
bababababa · 多个条件的条件格式 2 年前 |
anwwwar · 我需要一种方法,只有在两列同时出现时才能找到重复项 2 年前 |
MathMan 99 · SQL:使用条件求和行数 2 年前 |
Loki · 仅当满足另一列的Fillna条件时 2 年前 |