关于有时if判断永远执行第一句的bug

发布于:2023-01-04 ⋅ 阅读:(175) ⋅ 点赞:(0)

首先这是我在做web项目时遇到的 刚开始的时候没注意就用的==判断

代码如下

  if (goid == null)){
            System.out.println("等于空");
            request.getRequestDispatcher("/index.jsp").forward(request,response);
        }else {
            service1.deleteShopCat(Integer.parseInt(goid));
            request.getRequestDispatcher("/index.jsp").forward(request,response);
        }

前端返回来的是字符串  == 

==判断

Java中的8种基本数据类型(byte,short,char,int,long,float,double,boolean)比较他们之间的值是否相等。
引用数据类型,比较的是他们在堆内存地址是否相等。每新new一个引用类型的对象,会重新分配堆内存空间,使用==比较返回false。

使用 equals 比较

equals方法是Object类的一个方法,Java当中所有的类都是继承于Object这个超类。
JDK1.8 Object类equals方法源码如下,即返回结果取决于两个对象的使用==判断结果

最后用equals 判断 成功 所以 做项目 要心细


网站公告

今日签到

点亮在社区的每一天
去签到