/**
* 对 界面上显示的娱乐版块进行排序.(优先级)
*
* @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 ,没发现子线程 也枷锁了 .
I don’t see any big problem, but the questioner could consider the coding style. Might help Debug
Clean the project and try restarting eclipse
Thank you everyone, the problem has been solved. It was the IDE that deceived me. The JDK syntax itself does not have Return and then Return. This situation may occur in the Debug mode on Android Studio.
There is no multi-threading either. In short, don’t be blinded by this problem. Hit more breakpoints.