在Java中检查对象是否为空的requireNonNull()方法

1,122 阅读4分钟

Java中的一个对象是一个类的实例。它是一个真实的实体,存在于与类相对的内存中,作为对象的蓝图。

对象代表了类所定义的特定实体的数据和方法。

在这篇文章中,你将学习如何在Java中检查对象是否包含空引用。

在Java中检查对象是否为空的比较运算符

Java中的比较运算符(==)被广泛用于执行两个实体之间的比较。如果这两个实体是相同的,那么比较的结果就是布尔值 "真",否则,结果就是布尔值 "假"。

你可以使用这个操作符来检查Java中的一个对象是否为空,方法是将该对象与 "空 "值进行比较。

代码中定义了一个名为MyClass 的类,它有一个字符串字段name 。有两个构造函数来实例化该类的对象。

代码定义了两个名为myObjmyObj2MyClass 类的对象。myObj 对象没有被实例化,因此它应该有一个空引用。另一个对象被实例化了,所以它是一个非空对象。

让我们用下面的代码看看这个例子。

package java2blog;

class MyClass
{
    String myName;
    MyClass()
    {

    }
    MyClass(String name)
    {
        myName = name;
    }
}

public class checkObject {

    static MyClass myObj;
    static MyClass myObj2;
    public static void main(String[] args) 
    {   
        myObj2 = new MyClass();

        if(myObj==null)
            System.out.println("The first object is null");
        else
            System.out.println("The first object is not null");

        if(myObj2==null)
            System.out.println("The second object is null");
        else
            System.out.println("The second obejct is not null");
    }

}

输出。

第一个对象为空
第二个对象为非空

在Java中检查对象是否为空的isNull()方法

Java实用程序库的Objects类有一个静态方法,名为isNull() ,用于检查对象是否为空。

当你向isNull() 方法传递一个对象的引用时,它返回一个布尔值。如果引用是空的,它返回真,否则,它返回假。

下面给出了isNull() 方法的定义。

public static boolean isNull(Object obj)

让我们看看代码中的例子。

package java2blog;

import java.util.Objects;

class MyClass
{
    String myName;
    MyClass()
    {

    }
    MyClass(String name)
    {
        myName = name;
    }
}

public class checkObject {

    static MyClass myObj;
    static MyClass myObj2;
    public static void main(String[] args) 
    {   
        myObj2 = new MyClass();

        if(Objects.isNull(myObj))
            System.out.println("The first object is null");
        else
            System.out.println("The first object is not null");

        if(Objects.isNull(myObj2))
            System.out.println("The second object is null");
        else
            System.out.println("The second object is not null");
    }

}

输出。

第一个对象为空
第二个对象不为空

如果你想了解更多关于isNull() 方法的信息,请访问我们的文章

nonNull()方法用于检查Java中的对象是否为空。

nonNull() 方法与isNull() 方法相反。它也是定义在Objects类中的一个静态方法。

当你向nonNull() 方法传递一个对象的引用时,它返回一个布尔值。如果引用不是空的,它返回真,否则,它返回假。

下面给出了nonNull() 方法的定义。

public static boolean nonNull(Object obj)

你可以使用这个方法来检查对象是否为null,只要在方法调用语句前加上否定操作符(!),就可以反转该方法返回的值。

因此,如果对象是空的,该方法返回false。我们将 "false "反转为 "true",这样,如果对象是空的,条件就变成了 "true"。

让我们看看这段代码。

package java2blog;

import java.util.Objects;

class MyClass
{
    String myName;
    MyClass()
    {

    }
    MyClass(String name)
    {
        myName = name;
    }
}

public class checkObject {

    static MyClass myObj;
    static MyClass myObj2;
    public static void main(String[] args) 
    {   
        myObj2 = new MyClass();

        if(!Objects.nonNull(myObj))
            System.out.println("The first object is null");
        else
            System.out.println("The first object is not null");

        if(!Objects.nonNull(myObj2))
            System.out.println("The second object is null");
        else
            System.out.println("The second object is not null");
    }

}

输出。

第一个对象是空的
第二个对象不是空的

在Java中检查对象是否为空的requireNonNull()方法

requireNonNull() 方法也是Objects类的一个静态方法。该方法接受一个对象引用,如果引用为空,则抛出一个NullPointerException

你可以使用这个方法来检查参数,也可以用于其他用途。下面给出了requireNonNull() 方法的定义。

public static 

检查对象是否为空。

  • 通过传递对象的引用,在try块中调用该方法。
    • 如果对象不是空的,控件将移动到下一行。
    • 在下一行显示非空对象的信息。
  • 在捕获块中,捕获NullPointerException
    • 只有当对象为空并且抛出异常时,控件才会移动到catch块。
    • 在catch块中显示空对象的信息。

让我们看看这段代码。

package java2blog;

import java.util.Objects;

class MyClass
{
    String myName;
    MyClass()
    {

    }
    MyClass(String name)
    {
        myName = name;
    }
}

public class checkObject {

    static MyClass myObj;
    static MyClass myObj2;
    public static void main(String[] args) 
    {   
        myObj2 = new MyClass();

        try
        {
            Objects.requireNonNull(myObj);
            System.out.println("The first object is not null");
        }
        catch (NullPointerException e)
        {
            System.out.println("The first object is null");
        }
        try
        {
            Objects.requireNonNull(myObj2);
            System.out.println("The second object is not null");
        }
        catch (NullPointerException e)
        {
            System.out.println("The second object is null");
        }
    }

}

输出。

第一个对象为空
第二个对象不为空

总结

在处理对象时,检查对象是否为空是很重要的,这样可以避免意外的结果和失败。大多数情况下,NullPointerException ,是由于没有检查对象的空值条件而造成的。

你可以在这里阅读文章中使用的不同多态形式的方法。

以上就是关于如何在java中检查对象是否为空的全部内容。

希望你喜欢阅读这篇文章。请继续关注更多的文章。
学习愉快!