Сделай метод:
private final Comparator<Person> personComparator(String dynaValue) {
return Comparator.comparing(person -> {
if (person.getFirstname() != null) return person.getFirstname();
return evaluateWithDynamicProperty(person, dynaval);
}
вызывать как:
Collections.sort(persons, personComparator(dynaValue));
Или используйте лямбду:
String personComparatorFn(Person person, String dynaValue) {
if (person.getFirstname() != null) return person.getFirstname();
return evaluateWithDynamicProperty(person, dynaval);
}
и вызывать как:
Collections.sort(persons, Comparator.comparing(p -> personComparatorFn(p, dynaValue));