在java中如何检查null?

这个问题在这里已经有了答案:

  • Java对象空检查方法8的答案

  • 显然,你实际上正在问如何在引擎盖下实现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值。 每个内部细节以及nullobject比较的实现都完全由java管理,所以我们需要的是将objectnull进行比较,如下所示: -

    Object obj = null; // Object can be replaced with any class 
    if(obj == null){
    // do your logics
    } 
    

    就任何ListCollection ,要查看存储在其中的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

    上一篇: how null is checked in java?

    下一篇: How to turn null into false in Java?