gpt4 book ai didi

if 语句中的 Java NullPointerException

转载 作者:行者123 更新时间:2023-11-29 09:40:41 25 4
gpt4 key购买 nike

我目前在以下代码中遇到 NullPointerException。

else if (isEmpty(href))
System.err.println("This is an empty link: " + href);

其中 isEmpty 函数如下。

public boolean isEmpty(String HREF){
if (HREF.equals("") || HREF.equals("null") || HREF == null || HREF.isEmpty())
return true;
else
return false;
}

是因为我无法将字符串与 null 进行比较吗?我该怎么做才能使这个功能发挥作用?

最佳答案

您的 isEmpty 测试只是按错误的顺序执行操作。改变这个:

if (HREF.equals("") || HREF.equals("null") || HREF == null || HREF.isEmpty())  
return true;

到:

if (HREF == null || HREF.equals("") || HREF.equals("null") || HREF.isEmpty())  
return true;

如果 HREF 实际上是 null,那么第一个测试将是 short-circuit if 的其余部分,您将不会获得 NPE。

(顺便说一句,显式测试 HREF.equals("") 并调用 HREF.isEmpty() 是多余的。您只需执行一个或其他。)

顺便说一句,我建议,作为一种风格,将您的方法简化为单个 return 语句:

public boolean isEmpty(String HREF){
return HREF == null || HREF.isEmpty()) || HREF.equals("null");
}

(此外,如果针对字符串 "null" 的测试是针对 null 值进行检查的尝试,您也可以放弃该条件。事实上,您然后可以使用类似 Apache Commons 的 StringUtils.isEmpty(CharSequence) 方法来做你想做的事情。)

关于if 语句中的 Java NullPointerException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31591556/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com