java大神有吗?compareTo return 失效 通过判断是否在map内条件下的return debug后发现似乎被忽略了,跑不到那里。
@Override
public int compareTo(Conversation another) {
if (another instanceof Conversation) {
Conversation anotherConversation = (Conversation) another;
if (type == TIMConversationType.Group) {
if (ImSettingManager.getTopContactMap().containsKey(BeanContactSetting.FONT_WORD_TYPE_GROUP +
getIdentify())) {
if (anotherConversation.type == TIMConversationType.Group) {
if (ImSettingManager.getTopContactMap().containsKey(BeanContactSetting.FONT_WORD_TYPE_GROUP +
anotherConversation.getIdentify()))
return 0;
else
return 1;
}else{
if (ImSettingManager.getTopContactMap().containsKey(BeanContactSetting.FONT_WORD_TYPE_PEOPLE +
anotherConversation.getIdentify()))
return 0;
else
return 1;
}
}
} else {
if (anotherConversation.type == TIMConversationType.Group) {
if (ImSettingManager.getTopContactMap().containsKey(BeanContactSetting.FONT_WORD_TYPE_GROUP +
anotherConversation.getIdentify()))
return 0;
else
return 1;
}else{
if (ImSettingManager.getTopContactMap().containsKey(BeanContactSetting.FONT_WORD_TYPE_PEOPLE +
anotherConversation.getIdentify()))
return 0;
else
return 1;
}
}
long timeGap = anotherConversation.getLastMessageTime() - getLastMessageTime();
if (timeGap > 0) return 1;
else if (timeGap < 0) return -1;
return 0;
} else {
throw new ClassCastException();
}
相关推荐
一个java程序员的经验总结
日常开发过程中遇到的问题进行总结,有的在上面纠结了很久,希望对大家有帮助
Java集合框架、并发修改异常、Lamabda表达式
javaList/map面试题
Java Set深度解析:从hashCode契约到生产级选型决策
Set是Java集合框架中承载数据唯一性语义的核心抽象,其底层原理直指哈希表结构、红黑树平衡机制与并发内存模型。理解equals()与hashCode()的强一致性契约,是避免去重失效的前提;掌握HashSet扩容、TreeSet旋转、CopyOnWriteArraySet写时复制等行为差异,决定高并发与大数据场景下的性能拐点。在电商订单去重、风控白名单排序、实时监控指标管理等典型应用中,Set不仅是容器,更是数据一致性的第一道防线。本文聚焦JDK源码级实现细节与12个真实线上案例,揭示从开发规范到生产避坑
从Lambda到抽象层次:Java函数式代码的工程实践
函数式编程强调将计算过程抽象为数据流,Java中的Lambda表达式虽简化了语法,却并非抽象层次提升的终点。真正区分代码质量的是业务语义与机器操作之间的距离。理解高阶函数、Stream链和业务函数接口的角色,是迈向高抽象层次的关键。通过提取命名方法、定义领域接口、组合流水线,代码可从“能跑”进化为“能看懂、能复用、能演进”。在订单处理、规则校验、价格计算等场景中,这种实践能显著降低维护成本。本文聚焦Lambda如何成为函数式入口,并给出从低到高抽象层次的可行路径,帮助工程师写出贴近业务语言的Java代码。
Java轻量级规则引擎Aviator实战:从表达式求值到电商促销系统设计
规则引擎是解决复杂业务逻辑与代码耦合问题的关键技术,其核心原理是将业务决策逻辑从应用程序代码中剥离,实现动态配置与管理。通过将业务规则定义为可解释执行的表达式或脚本,规则引擎能够显著提升系统的灵活性和可维护性。在Java生态中,Aviator以其高性能、轻量级和低学习成本脱颖而出,特别适用于需要快速迭代和频繁变更规则的场景,如电商促销、风控策略和动态配置。它通过将规则编译为Java字节码执行,兼顾了动态性与执行效率。本文将以Aviator为例,深入解析其表达式求值原理、自定义函数扩展、性能调优策略,并最终展


