【发布时间】:2019-05-11 11:02:05
【问题描述】:
我了解如何为基于这些对象的多个属性的对象列表构建和使用Comparator。但是,我不确定如何通过让用户选择要排序的参数来有效地做到这一点。这是GWT 用户界面。
例如,我有两个下拉菜单,每个下拉菜单有 11 个参数,对应于对象的属性。每个菜单旁边也有一个按钮来指定升序/降序。
因此,用户可以选择例如按fileName, desc 和timestamp, asc 排序。我如何对这些对象进行排序,而无需针对数百种可能的组合使用冗长的 if 语句?
如果排序是固定的,我可以这样做:
files.sort(Comparator.comparing(FileInfo::getFileName).thenComparing(FileInfo::getTimestamp).reversed());
(我可能已经把 asc/desc 倒退了)
但我不应该为每一个可以想象的选项都输入它。那么我该怎么做呢?
【问题讨论】:
-
你在用弹簧吗?
-
这可能会给你一些想法/帮助你开始 --> stackoverflow.com/questions/1421322/…
-
@Mykhailo 不幸的是,Java EE 和 GWT 不适合这个应用程序
-
@Aomine 谢谢!我会检查一下。
-
您可以为此目的使用策略模式
标签: java sorting gwt java-8 comparator