У меня есть класс с несколькими полями:
@Builder
public class SampleClass {
private String a;
private String b;
private String c;
private String d;
}
У меня есть вспомогательный класс, который выполняет некоторую модификацию строки:
public class StringModifier {
public static String prefixUnderscore(String text) {
return "_" + text;
}
public static String postfixUnderscore(String text) {
return text + "_";
}
}
Теперь, основываясь на некоторых условиях, яможет иметь поле а или поле б.Чтобы создать объект, я делаю:
private static SampleClass getSampleClassWithB(String b, String c, Function<String, String> mapper) {
String d = mapper.apply(b);
return SampleClass.builder().b(b).c(c).d(d).build();
}
private static SampleClass getSampleClassWithA(String a, String c, Function<String, String> mapper) {
String d = mapper.apply(a);
return SampleClass.builder().a(a).c(c).d(d).build();
}
И для использования этих функций:
getSampleClassWithA("a", "c", StringModifier::postfixUnderscore);
getSampleClassWithB("b", "c", StringModifier::prefixUnderscore);
Теперь, как вы можете видеть, getSampleClassWithA и getSampleClassWithB выполняют довольно похожие вещи.Есть ли способ объединить это в метод?