Java 中将对象与 null 进行比较

发布于 2024-07-23 11:24:11 字数 687 浏览 3 评论 0原文

我正在尝试使用以下语法验证对象是否为 null

void renderSearch(Customer c) {
    System.out.println("search customer rendering>...");
    try {
        if (!c.equals(null)) {
            System.out.println("search customer  found...");
        } else {
            System.out.println("search customer not found...");
        }
    } catch (Exception e) {
        System.err.println("search customer rendering error: "
                + e.getMessage() + "-" + e.getClass());
    }
}

我收到以下异常:

搜索客户渲染错误:null
类 java.lang.NullPointerException

我认为我正在使用 ifelse 语句考虑这种可能性。

I am trying to verify whether an object is null or not, using this syntax:

void renderSearch(Customer c) {
    System.out.println("search customer rendering>...");
    try {
        if (!c.equals(null)) {
            System.out.println("search customer  found...");
        } else {
            System.out.println("search customer not found...");
        }
    } catch (Exception e) {
        System.err.println("search customer rendering error: "
                + e.getMessage() + "-" + e.getClass());
    }
}

I get the following exception:

search customer rendering error: null
class java.lang.NullPointerException

I thought that I was considering this possibility with my if and else statement.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(7

写下不归期 2024-07-30 11:24:11

您不是在比较对象本身,而是在比较它们的引用。

尝试

c != null

使用 if 语句。

You're not comparing the objects themselves, you're comparing their references.

Try

c != null

in your if statement.

递刀给你 2024-07-30 11:24:11
!c.equals(null)

该行正在调用 c 上的 equals 方法,如果 c 为 null,那么您将收到该错误,因为您无法对 null 调用任何方法。
相反,你应该使用

c != null
!c.equals(null)

That line is calling the equals method on c, and if c is null then you'll get that error because you can't call any methods on null.
Instead you should be using

c != null
夜夜流光相皎洁 2024-07-30 11:24:11

使用c == null,因为您比较的是引用,而不是对象。

Use c == null, since you're comparing references, not objects.

浅唱々樱花落 2024-07-30 11:24:11

使用 c==null

equals 方法(通常)需要一个 customer 类型的参数,并且可能会调用该对象的某些方法。 如果该对象为 null,您将得到 NullPointerException。

此外,c 可能为 null,并且 c.equals 调用可能会抛出异常,无论传递的对象如何

Use c==null

The equals method (usually) expects an argument of type customer, and may be calling some methods on the object. If that object is null you will get the NullPointerException.

Also c might be null and c.equals call could be throwing the exception regardless of the object passed

書生途 2024-07-30 11:24:11

在这种情况下,对象 c 很可能为 null。

您可能想要覆盖 Customer 的 equals 的默认实现,以防您需要以不同的方式表现它。

在调用其上的函数之前还要确保传递的对象不为空。

Most likely Object c is null in this case.

You might want to override the default implementation of equals for Customer in case you need to behave it differently.

Also make sure passed object is not null before invoking the functions on it.

你对谁都笑 2024-07-30 11:24:11

现实情况是,当 c 为 null 时,您正在尝试执行 null.equals,因此这会生成异常。 进行比较的正确方法是“null”.equals(c)。

The reality is that when c is null, you are trying to do null.equals so this generates an exception. The correct way to do that comparison is "null".equals(c).

如若梦似彩虹 2024-07-30 11:24:11

如果 C 对象具有 null 值,则使用以下语句来比较 null 值:

if (c.toString() == null) {

    System.out.println("hello execute statement");

}

if C object having null value then following statement used to compare null value:

if (c.toString() == null) {

    System.out.println("hello execute statement");

}
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文