/**
* 对 界面上显示的娱乐版块进行排序.(优先级)
*
* @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 ,没发现子线程 也枷锁了 .
Je ne vois pas de gros problèmes, mais la personne qui pose la question pourrait considérer le style de codage. Pourrait aider au débogage
Nettoyez le projet et essayez de redémarrer Eclipse
Merci à tous, le problème a été résolu. C'est l'IDE qui m'a trompé. La syntaxe du JDK elle-même n'a pas Return puis Return. Cette situation peut se produire en mode Debug sur Android Studio.
Il n'y a pas de multi-threading non plus. Bref, ne soyez pas aveuglé par ce problème.