[英]How to reference an empty variable of any type in java
假设我们有以下变量:
Integer nbr;
String str;
ApiClass someInstance;
Date date;
我想声明nbr为空,str为空,someInstance为空,date为空(未分配任何值),而无需使用myVar = null;
因为显然这是一个坏习惯。
有没有一种方法可以测试一个Java变量是否没有分配给任何东西而没有分配给每个null
值。
看看Optional :
可以包含或不包含非null值的容器对象。 如果存在值,则isPresent()将返回true,而get()将返回该值。
编辑 :请考虑阅读注释中的参考。 您不应该只用“ isPresent”检查替换所有空检查!
特别厌倦了Null指针异常? 考虑使用Java SE 8的可选功能! (感谢@ModusTollens)
Null-Checks的另一种解决方法是Null-Object-Pattern 。 但我认为Optional更适合您的要求。
为了确保在“允许使用”对象之前已经设置了所有字段,您还可以使用构建器模式,或者使用不可变对象来简化设置。
注意:我故意不讨论是否使用null
s是反模式。 我只是在回答这个问题。
如果您在谈论局部变量,那么这是不可能的,并且会导致编译错误。 在给局部变量赋值之前,您不能访问它。
对于引用类型的静态或实例字段,不对其进行初始化与使用null对其进行初始化之间没有区别。 初始值始终为null,而不是某些明显的“未设置”值。 与原始字段相似,它们将分别初始化为0。 错误,如果您自己不这样做。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.