为了账号安全,请及时绑定邮箱和手机立即绑定

HashMap<> 和 if else一起使用的问题.

HashMap<> 和 if else一起使用的问题.

幕布斯7119047 2019-02-24 03:58:32
/** * 对 界面上显示的娱乐版块进行排序.(优先级) * * @return */ private BaseMessage entertainmentSort() { int size = mEntertainmentMap.size(); BaseMessage baseMessage = null; if (size > 0) { if (mEntertainmentMap.containsKey(TypeCst.LiveEntertainmentType.LIVE_TYPE_AUCTION)) { baseMessage = mEntertainmentMap.get(TypeCst.LiveEntertainmentType.LIVE_TYPE_AUCTION); } else if (mEntertainmentMap.containsKey(TypeCst.LiveEntertainmentType.LIVE_TYPE_GUESS)) { baseMessage = mEntertainmentMap.get(TypeCst.LiveEntertainmentType.LIVE_TYPE_GUESS); } else if (mEntertainmentMap.containsKey(TypeCst.LiveEntertainmentType.LIVE_TYPE_BET_VS)) { baseMessage = mEntertainmentMap.get(TypeCst.LiveEntertainmentType.LIVE_TYPE_BET_VS); } else if (mEntertainmentMap.containsKey(TypeCst.LiveEntertainmentType.LIVE_TYPE_BET_CONTENT)) { baseMessage = mEntertainmentMap.get(TypeCst.LiveEntertainmentType.LIVE_TYPE_BET_CONTENT); } else { baseMessage = null; } } else { baseMessage = null; } return baseMessage; } 先帖一波代码,这样运行HashMap 为什么 会出现 打断点 已经进入else if 然后又返回到另一个else if 什么鬼.... tips: 开始以为是同步 或者线程锁的问题,但是更换HashTable和其他并发 同步 容器 ,问题还没有解决 .. 求大神 相助,我仔细检查代码 是没问题的啊. 详细描述下问题:怕大家看不懂,就是 已经执行第三个else if ,下一步 直接返回到第二个else if. 我把每个else if都打印了线程ID ,没发现子线程 也枷锁了 .
查看完整描述

3 回答

?
慕慕森

TA贡献1856条经验 获得超17个赞

没看出什么大问题,不过题主是不是可以考虑一下代码风格。可能会帮助Debug

private  BaseMessage entertainmentSort() {
    if (!mEnterainmerntMap.isEmpty()) {
        TypeCst.LiveEntertaimmentType[] types = new TypeCst.LiveEntertainmentType[]{TYPE_ACTION, TYPE_GUESS, TYPE_BET_VS, TYPE_BET_CONTENT};
        for (TypeCst.LiveENtertainmentType type : types) {
            if (mEnterainmerntMap.containsKey(type))
                return mEnterainmerntMap.get(type);
        }        
    }
    return null;
}
查看完整回答
反对 回复 2019-03-01
?
FFIVE

TA贡献1797条经验 获得超6个赞

你把项目clean一下,把eclipse重启一下试试

查看完整回答
反对 回复 2019-03-01
?
慕侠2389804

TA贡献1719条经验 获得超6个赞

感谢各位,问题解决了 ,是IDE 欺骗了我, 本身JDK 语法上 是没有Return 之后再Return的,在Android Studio上面Debug模式 可能会出现这样的状况.

也不存在多线程,这个问题 总之 不要被双眼 蒙蔽 多打 断点 .

查看完整回答
反对 回复 2019-03-01
  • 3 回答
  • 0 关注
  • 734 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信