![]() |
1
80
不,在Java中,捕获NPE而不是空检查引用通常不是好的做法。
你可以用
如果仅此而已
|
![]() |
2
16
你可以用
|
![]() |
3
7
面向对象的方法是将isValid方法放在Country和其他类中。它不会减少空检查的数量,但是每个方法只有一个,并且您不会重复它们。
另一种方法是使用空对象:
我不确定在这种情况下是否更可取(严格来说,您需要一个子类来覆盖所有修改方法),Java 8的方法是在其他答案中使用Optional as方法,但我建议更全面地接受它:
当然,正确的设计可能是在可能的情况下使用集合(而不是可选的)。一个国家有一套城市,一个城市有一套学校,其中有一套学生,等等。 |
![]() |
4
5
作为其他精细用途的替代品
假设您想添加一些跟踪,您可以这样写:
|
![]() |
5
4
Java没有“空安全”操作,例如 Kotlin's null safety 您可以:
否则,如果您可以控制域对象,则可以重新设计类,以便从顶级对象(make)获得所需的信息
|
![]() |
6
0
您还可以看看vavr的选项,正如下面的文章所描述的,它比Java的可选选项更好,并且具有更丰富的API。 |
![]() |
Riccardo Perego · Swift设置值为空可选产量失败 7 年前 |
![]() |
Imran · 如何在Nim中处理选项类型? 7 年前 |
![]() |
Sanoj Kashyap · 消除强制展开的最佳方法 7 年前 |
![]() |
Bilal hao zou · Swift可选逃逸闭合 7 年前 |
![]() |
HenryNguyen · Java8通用拼图 7 年前 |