zoukankan      html  css  js  c++  java
  • java中判空

    一、概述

      java中判等似乎很简单,==用来判断对象引用(内存地址)是否相同,equals用来判断值是否相同。你可以试用String对象轻松区分这一点。

      那么在null判等(也就是判空操作)时呢?

      可以通过如下代码明白两个判等的比较:

            String name = null;
            if(null==name){
                System.out.println("null==name");//通过
            }
            if(name==null){
                System.out.println(name);
                System.out.println("name==null");//通过
            }
            
            String list = null;
            if(!"demo".equals(list)){
                System.out.println("demo.equals(list)");//通过
            }
            //编译器会在此处提示一个警告:Null pointer access: The variable list can only be null at this location
            if(!list.equals("demo")){
                System.out.println("list.equals(demo)");//不通过
            }

      1.通过红色字体代码证明了String类型在==判等时

       谁放前,谁放后是一样的。而null==xxxx这样的写法,我觉得只是一个规范习惯的方式,保证你不会少写=,因为你写null=xxx编译器肯定会给你报错。

       那么,除了String类型的对象,其他类型的对象呢?是否在试用==时也是谁放前谁放后没有区别呢?

      NullEquals e = null;
       if(e==null){
           System.out.println("e==null");//通过
       }
       if(null==e){
            System.out.println("null==e");//通过
       }

       结果也一样,证明了null判等这件事上,哪中对象是无所谓的,谁放前放后都可以。

      2.通过蓝色字体的代码证明了使用equals方法时,必须将非空的对象放在前面,null的对象一定不能放在前面。

        所以这里要养成"".equals()方法来判空的操作

    二、注意

      这两个判等操作墨守成规的,你实现某个类,重写它的equals方法最好也是用来判断他们的值是否相等,否则其他程序员在使用时容易误会。

    总结:判空时,养成null在前是个好习惯

       判等时,为了避免被判断对象可能为空,所以把肯定不为空的对象放到前面是个好习惯

    注:以上代码都经过测试

  • 相关阅读:
    【轻松前端之旅】<a>元素妙用
    【轻松前端之旅】HTML的块元素、行内元素和空元素
    每周学算法/读英文/知识点心得分享 9.27
    Linux find 命令详解
    每周学算法/读英文/知识点心得分享 9.19
    Linux命令之nohup 和 重定向
    基于C-W节约算法的车辆路径规划问题的Java实现
    每周学算法/读英文/知识点心得分享 9.6
    每周学算法/读英文/知识点心得分享 8.11
    每周学算法/读英文/知识点心得分享 3.11
  • 原文地址:https://www.cnblogs.com/brolanda/p/4702416.html
Copyright © 2011-2022 走看看