Если все «ключи» будут связаны с методами получения, у вас может быть статическое отображение ключа / получения, которое вы используете в функции:
Примечание: нам придется использовать rawвведите Comparable
, так как мы не можем использовать разные Functions<S3ObjectSummary, Comparable<T>>
(даже если все получатели вернут Comparable<X>
объектов, X
будут различаться)
Map<String, Function<S3ObjectSummary, Comparable>> map = new HashMap<>();
map.put("key", s3 -> s3.getKey());
map.put("modified", s3 -> s3.getModified());
// other entries
Затем сортируйте, используя:
objectSummaryList.sort(Comparator.comparing(map.get(compareByKey)));