本文介绍如何为自定义类(如 movie)实现 `comparable` 接口,按多个字段(先 type 后 id)升序排序,并确保 null 值被视为最大值,避免 `nullpointerexception`。
要让 Movie 类支持自然排序(例如用于 Collections.sort() 或 TreeSet),需正确实现 compareTo() 方法。核心需求有三点:
- 主序:优先按 type 排序(枚举类型天然可比);
- 次序:type 相同时,再按 id 升序排列;
- 空安全:当 type 或 id 为 null 时,将其视为“最大值”(即排在末尾),而非抛出异常。
✅ 推荐实现方式(使用 Objects.compare() + Comparator.nullsLast())
Java 8+ 提供了简洁、健壮的工具方法,无需手动写冗长的 null 判断: