繁体   English   中英

如何在Java中引用任何类型的空变量

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM