Обновить

Избавляемся от хардкода в Java-приложении с @FieldNameConstants

Если вы работали с JPA Criteria API, то вам точно приходилось хардкодить название полей:

public Specification<Car> where(@Nullable CarFilterDto carFilter) {
    return (root, query, cb) -> cb.equal(root.get("type"), carFilter.getType());
}

В таких случаях, чтобы избавиться от хардкода, нужно написать константы с именами полей.
Вручную это делать долго, но оказывается, это умеет ломбок!
Вот так выглядит код с ломбоком:

@FieldNameConstants
public class FieldNameConstantsExample {
  private final String iAmAField;
  private final int andSoAmI;
  @FieldNameConstants.Exclude private final int asAmI;
}

и вот во что он превратится:

 public class FieldNameConstantsExample {
  private final String iAmAField;
  private final int andSoAmI;
  private final int asAmI;
  
  public static final class Fields {
    public static final String iAmAField = "iAmAField";
    public static final String andSoAmI = "andSoAmI";
  }
}

Также, можно:

  • генерировать енам вместо констант

  • поменять название статического класса

  • поменять уровень доступа полей

  • генерировать только для явно включенных полей

@FieldNameConstants(asEnum = true,
        innerTypeName = "StaticClassName", 
        level = lombok.AccessLevel.PRIVATE, 
        onlyExplicitlyIncluded = true)

👨‍💻 Джуниор

Теги:
Всего голосов 4: ↑3 и ↓1+2
Комментарии1

Более 100 000 вакансий: полный анализ IT‑рынка России в 2026 году. И почему hh.ru нас обманывает?

Привет, Хабр! (И тебе, IT-шник, который хочет разобраться, что в 2026 вообще здесь происходит? Сейчас разберёмся, но легче тебе от этого не станет).

Сегодня будем препарировать весь IT рынок России на более чем 100 тысяч вакансий со всевозможных площадок. По-настоящему полная и честная аналитика. С графиками, цифрами и верой в светлое будущее...

Здесь будет всё, зарплаты, актуальные стеки и то что уже никому не нужно, прогнозы, тренды, и многое другое, будет интересно...

Более 100 000 вакансий: полный анализ IT‑рынка России в 2026 году. И почему hh.ru нас обманывает?

Публикации