zoukankan      html  css  js  c++  java
  • 今天犯的一个低级错误

    今天发现了Bug,看下日志,应该是某个逻辑一直没进,看下代码:

    String[] supportCenters = FrmConstants.SUPPORT_CENTERS.split(",");
            boolean flag = false;
            if (null != supportCenters && supportCenters.length > 0) {
                for (String center : supportCenters) {
                    // upContentTypeLable.getOwnCorpOrgId()返回的为Long类型,下面这句有问题
                    if (null != center && null != upContentTypeLable
                            && center.equals(upContentTypeLable.getOwnCorpOrgId())) {
                        flag = true;
                        break;
                    }
                }
            }                                             

    标红的这句话,判断存在问题。一个小疏忽浪费了不少时间。看下String.equals的源代码:

     public boolean equals(Object anObject) {
            if (this == anObject) {
                return true;
            }
            if (anObject instanceof String) {
                String anotherString = (String)anObject;
                int n = value.length;
                if (n == anotherString.value.length) {
                    char v1[] = value;
                    char v2[] = anotherString.value;
                    int i = 0;
                    while (n-- != 0) {
                        if (v1[i] != v2[i])
                            return false;
                        i++;
                    }
                    return true;
                }
            }
            return false;
        }
    

      很明显是绝对返回false的,以此记录,希望以后不要范这种低级错误了。

  • 相关阅读:
    python 协程之Greenlet
    python 协程
    python 多进程通信之Manger
    python 多线程通信之Queue
    python 多进程
    python threading之queue
    python threading之同步条件(Event)
    python threading之条件变量同步(condition)
    python之字符串常用方法
    python之字典操作
  • 原文地址:https://www.cnblogs.com/toSeeMyDream/p/8610149.html
Copyright © 2011-2022 走看看