equals方法中变量在前和在后的区别

Posted 奋斗的Fly

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了equals方法中变量在前和在后的区别相关的知识,希望对你有一定的参考价值。

对于变量:String str1;

使用str1.equals("null");

对于变量str1,如果str1是null,空是没有equals方法的,会抛出空指针异常

使用"null".equals(str1);如果str1是null,最终始终返回的都是false;

建议使用官方提供的工具类:

StringUtils.equals(String str1, String str2)

工具类源码如下:

public static boolean equals(String str1, String str2)
    {
        return str1 != null ? str1.equals(str2) : str2 == null;
    }
  //忽略大小写进行比较
    public static boolean equalsIgnoreCase(String str1, String str2)
    {
        return str1 != null ? str1.equalsIgnoreCase(str2) : str2 == null;
    }

 可以看到源码利用三元表达式很好的规避了null,空指针异常这个问题

 

以上是关于equals方法中变量在前和在后的区别的主要内容,如果未能解决你的问题,请参考以下文章

java学习--基础知识进阶第一天--笔记

Java 中 equals 和 == 的区别

关于android 的10进制转16进制高位在前低位在后,不足位数补0处理方法

关于android 的10进制转16进制高位在前低位在后,不足位数补0处理方法

关于android 的10进制转16进制高位在前低位在后,不足位数补0处理方法

Java中“==”与equals方法的区别