Java中的一个对象是一个类的实例。它是一个真实的实体,存在于与类相对的内存中,作为对象的蓝图。
对象代表了类所定义的特定实体的数据和方法。
在这篇文章中,你将学习如何在Java中检查对象是否包含空引用。
在Java中检查对象是否为空的比较运算符
Java中的比较运算符(==)被广泛用于执行两个实体之间的比较。如果这两个实体是相同的,那么比较的结果就是布尔值 "真",否则,结果就是布尔值 "假"。
你可以使用这个操作符来检查Java中的一个对象是否为空,方法是将该对象与 "空 "值进行比较。
代码中定义了一个名为MyClass 的类,它有一个字符串字段name 。有两个构造函数来实例化该类的对象。
代码定义了两个名为myObj 和myObj2 的MyClass 类的对象。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中检查对象是否为空的全部内容。
希望你喜欢阅读这篇文章。请继续关注更多的文章。
学习愉快!