在java中如何检查null?
这个问题在这里已经有了答案:
显然,你实际上正在问如何在引擎盖下实现null
检查。
答案是具体实现。 对于不同的JVM和/或执行平台可能会有所不同。 (如果您想研究特定JVM上的特定实现,我建议您检出JVM源代码和/或让JIT编译器将已编译的本机代码转储出来供您检查。)
基本上有两种方法:
显式x == null
测试通常会编译为一个指令序列,该指令序列将x
的值与表示null
的值进行比较。 这通常是一个32位或64位的零。
x.toString()
的隐式空检查可以以同样的方式完成。 或者,它可以通过简单地将x
作为机器地址并尝试在该地址处获取值来完成。 假设零页未被映射,这将触发硬件“分段故障”异常。 Java使用本机代码机制来捕获该异常,并将其变为NullPointerException
。
如果您正在查看单个项目:
if(object == null)
{
(...)
}
你提到了一个列表。 让我们假装它是一个对象ArrayList:
for(Object o : array_list)
{
if(o == null)
{
(...)
}
}
在开始循环之前,您还需要检查您的列表是否为空。
基本上任何可以很容易地检查null
值。 每个内部细节以及null
与object
比较的实现都完全由java管理,所以我们需要的是将object
与null
进行比较,如下所示: -
Object obj = null; // Object can be replaced with any class
if(obj == null){
// do your logics
}
就任何List
或Collection
,要查看存储在其中的object
是否为null
: -
List <String> list = new ArrayList<String>();
list.add("hi");
list.add(null);
for(String s : list){
if(s == null){
// do your logics here
}
}
链接地址: http://www.djcxy.com/p/76157.html