请有人建议以下问题的最佳解决方案(这是我正在尝试编码的程序的一部分):
我有一个带有成员变量的类 Foo 和另一个扩展 Foo 的类 Bar。Bar 添加了额外的成员变量。Bar 对象存储在一个集合中,因此我想通过它们的任何成员变量对这些对象进行排序。
我考虑使用枚举类型,其中包含可以作为参数传递给 compareTo() 方法的类的成员变量,但由于枚举类型是隐式静态的,我无法为 Bar 或任何其他可能扩展的类的成员变量添加参数我想比较的 Foo。例如,我想通过成员变量 'myVar' 比较两个 Bar 类,我会调用类似 bar1.compareTo(bar2, MyEnum.MYVAR) 的类,然后将这些类与它们的 myVar 值进行比较。我在想我可能只需要创建单独的方法来按每个成员变量排序,但想使用 compareTo(),因为 Java 集合使用它来自动对其项目进行排序(我相信)。
我可以清楚地描述这个问题,但我可能会以完全错误的方式实现这一目标。任何指针将不胜感激。
编辑 - 这与在 Windows 资源管理器窗口中按不同属性(即修改日期、文件名、大小等)对列进行排序的行为类似。