Java判断字符串是否为null的equals的正确用法

2022年6月30日12:16:57

在业务需求中,我们经常会判断是否为null而去做一些业务处理,用到了equals方法,但是你想想之前真的没有用错吗?

话不多说,这个经常用,直接上代码

package com.example;

import lombok.extern.slf4j.Slf4j;

/**
 * @author XuYangWei
 * @Date 2021/1/23 9:06
 */

@Slf4j
public class TestEquals {
    public static void main(String[] args) {
        log.info("我是叫null的小伙子,让我来~");
        toTestEquals(null);
    }

    public static void toTestEquals(String s) {
        String y = "y";
        if (y.equals(s)) {
            log.info("打印不出我,实际业务中equals相等后再我这里做业务代码哦,嘿嘿~~~");
        }
        try {
            if (s.equals(y)) {
                log.info("看异常日志,不用看我,哼~");
            }
        } catch (Exception e) {
            log.info("住手,这里不可以!");
            log.info("我是空指针异常");
        }
    }
}

这里传递一个不为空的字符串s和为空的变量y是null作比较,前面的判断我们先把参数s放前面,后面的判断我们把y放前面。

我们看看测试结果:

同时是两者作比较,前面的方法不会出现空指针异常,跳出if;后面的方法在作比较的时候会直接在if判断的时候出现空指针异常,被捕捉到异常日志输出。

根据打印我们就能看出结果,这种问题新手很容易忽略,以为确定不为null的定值和可能为null的变量比较不管谁在前谁在后都一个样。

总结:

不为null的定值和可能为null的变量比较,一定要定值在前面,变量在后面。

  • 作者:笙箫123
  • 原文链接:https://blog.csdn.net/q15102780705/article/details/113040568
    更新时间:2022年6月30日12:16:57 ,共 749 字。