Вы можете обернуть все это в enum
, как говорит Сурин, но вы можете обогатить его дополнительными функциональными возможностями, такими как сравнение.
enum AssignmentFilter implements Comparator<BusinessPartnerAssignmentDetail> {
fieldOfficeDescription(BusinessPartnerAssignmentDetail::getFieldOfficeDescription, Comparator.naturalOrder()),
locationDescription(BusinessPartnerAssignmentDetail::getLocationDescription),
segmentType(BusinessPartnerAssignmentDetail::getSegmentType),
displayName(BusinessPartnerAssignmentDetail::getDisplayName);
private Function<BusinessPartnerAssignmentDetail, Comparable<? super BusinessPartnerAssignmentDetail>> compareByKey;
AssignmentFilter(Function<BusinessPartnerAssignmentDetail, Comparable<? super BusinessPartnerAssignmentDetail>> byKey, Comparator<BusinessPartnerAssignmentDetail> whenNull) {
compareByKey = Comparator.comparing(byKey, Comparator.nullsLast(whenNull));
}
AssignmentFilter(Function<BusinessPartnerAssignmentDetail, Comparable<? super BusinessPartnerAssignmentDetail>> byKey) {
this(byKey, Comparator.reverseOrder());
}
public int compare(BusinessPartnerAssignmentDetail bpad1, BusinessPartnerAssignmentDetail bpad1) {
return comparator().compare(bpad1, bpad2);
}
}
Вы можете вызвать это как businessPartnerAssignmentDetails.sort(AssingmentFilter.valueOf(portfolioFilterDto.getSortParameter()))
.
Является ли это лучше, чем просто заполнение карты, ваш звонок.