Авто удаление геттер-сеттеров с ломбок? - PullRequest
0 голосов
/ 05 января 2019

У меня есть проект. Я не пользуюсь Ломбоком. Я использую геттеры и сеттеры, созданные вручную.

Теперь я хочу импортировать Lombok. После того, как я импортирую, я буду использовать для всех сущностей.

Нужно ли вручную добавлять @Data ко всем сущностям? И я должен удалить все объекты вручную? Разве нет другого способа автоматически конвертировать эти классы?

Я не смог найти вопросов вроде этого:

https://www.google.com/search?q=lombok+automatic+remove+getter+site:stackoverflow.com&num=100&safe=off&sa=X&ved=2ahUKEwjXyqKT39bfAhXysYsKHWw4Ah0QrQIoBDAKegQIPxAM&biw=1497&bih=762

Ответы [ 3 ]

0 голосов
/ 06 января 2019

Поскольку у сущности в среднем может быть десять полей, для каждого класса нужно удалить много текста. Используя стандартное форматирование и одну строку между методами, эти 10 получателей и десять установщиков означают 10 * 2 * 4 = 80 строк на класс. Все, что вам нужно добавить одну @Data аннотацию.

Так что я бы сконцентрировался на удалении и написал бы простое регулярное выражение, распознающее тривиальные геттеры и сеттеры. Добавление аннотации ко всем измененным файлам - это то, что я бы с удовольствием сделал вручную даже для десятков объектов. Забыть это не проблема, так как это приводит к очевидным ошибкам во время компиляции.


Тривиальное непроверенное регулярное выражение для тривиальных геттеров:

[ \t]+public [\\w<,> ]+ get[A-Z](\\w+)\\(\\)\\s*\\{\\s*return\\s+[a-z]\\1;\\s*\\}\\s*\n

Никакое такое регулярное выражение не может быть идеальным (мои разрывы, например, когда возвращаются массивы или когда вы используете нестандартное форматирование или именование; это легко исправить, но могут возникнуть другие проблемы). Тем не менее, он может делать свою работу.

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

0 голосов
/ 15 января 2019

Лучший способ использовать IntelliJ IDEA - использовать сочетание клавиш Command + Shift + A и выбрать нужный рефакторинг.

посмотреть на скриншот

0 голосов
/ 05 января 2019

В IntelliJ IDEA с установленным плагином Lombok у вас должна быть эта функция:

  1. Перейдите к целевому классу
  2. Меню Рефакторинг | Ломбок | По умолчанию @ Data

Таким образом, вы можете проводить рефакторинг своих классов один за другим. Я не знаю, существуют ли какие-либо инструменты пакетного рефакторинга для Lombok.

Если вы заинтересованы в пакетном рефакторинге, пожалуйста, наберите номер номер 574 в трекере плагинов Lombok. Или даже внести код в этот проект.

refactor menu

...