Статьи

Извлечение констант из строк и чисел с помощью рефакторинга Eclipse

Для удобства чтения почти всегда рекомендуется заменить магические числа и строковые литералы константами. Это все хорошо, но может потребоваться некоторое время для рефакторинга этих констант, особенно строк или частей строк.

Например, в приведенном ниже коде мы хотим провести рефакторинг «shovel and spade» в частную статическую финальную строку под названием TOOLS . Чтобы сделать это вручную, потребуется некоторое время. Это идет еще медленнее, если мы хотим извлечь только «spade» в константу, потому что сначала нужно преобразовать строку в конкатенацию.

String tools = "shovel and spade";
...
String otherTools = "shovel and spade";

К счастью, в Eclipse есть несколько способов мгновенного преобразования литералов в константы. В сочетании с инструментами, позволяющими ускорить выбор строки и выделить часть строки, у вас есть возможность создать константу за 2 секунды. Я буду обсуждать все эти функции ниже.

Извлечь константу из строки / числа

Есть 2 способа извлечь константу, один использует быстрое исправление, а другой — рефакторинг . Сначала я покажу метод быстрого исправления, а затем рефакторинг и расскажу о (небольших) различиях между ними. В примере используется строка, но все верно и для чисел.

Выполните следующие шаги, чтобы использовать быстрое исправление:

  1. Сначала выберите строку. Самый быстрый способ — навести курсор на строку и нажать Alt + Shift + Up (Выбрать вложенный элемент; изящный ярлык, который я обсуждаю в разделе Выбор строк и методов одним нажатием клавиши ).
  2. После выбора строки нажмите Ctr + 1 (Quick Fix) и затем выберите « Извлечь в постоянную» . Eclipse сделает следующее: (a) создаст приватную конечную статическую переменную типа String с именем по умолчанию, (b) заменит все вхождения этой строки константой и (c) поместит курсор на объявление константы, чтобы дать вам шанс изменить имя, тип и видимость переменной, используя заполнители, через которые вы можете использовать Tab.
  3. Когда вы будете довольны постоянными деталями, нажмите Enter, чтобы вернуться к строке, на которой вы начали быстрое исправление.

Вот короткое видео с примером использования быстрого исправления. Мы извлечем константу (называемую TOOLS) из строкового литерала («лопата и лопата»), который используется в двух местах.

Примечание: вы можете использовать Tab для перехода от одного заполнителя к другому, и нажав Enter, вы вернетесь к исходной строке.

Другой способ извлечь константу — использовать рефакторинг Extract Constant . Снова выберите строку, затем выберите Refactor> Extract Constant… ( Alt + T, A ) в меню приложения. Появится диалоговое окно с предложением указать имя константы, ее видимость и заменить ли все вхождения строки константой. После того, как вы ввели детали, нажмите Enter, и вы определите свою константу.

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

Различия между двумя? Не так много, самая большая разница заключается в том, что вы вводите детали константы (т.е. до внесения изменений или после). Диалоговое окно рефакторинга также предоставляет возможность добавить квалифицирующее имя типа перед использованием константы, но в большинстве случаев это избыточно. Я бы порекомендовал использовать быстрое исправление, если вам не удобнее использовать диалоги.

Кстати, вы можете назначить пользовательские сочетания клавиш для любой команды, сопоставив Quick Assist — Extract Constant или команду Extract Constant .

Выберите часть строки

Иногда вам нужно разбить строку на несколько частей и преобразовать одну из этих частей в константу. Eclipse может сделать это автоматически.

Выберите часть строки, которую вы хотите выделить (не беспокойтесь о кавычках), нажмите Ctrl + 1 и выберите « Выделить выбранную часть строки» . Eclipse преобразует эту часть в строку с кавычками, объединяет ее с остальной частью строки и выбирает ее. Затем вы можете использовать любой из приведенных выше инструментов «Извлечь константу».

Вот пример того, как использовать эту функцию. Обратите внимание, что строка уже выбрана, поэтому мы можем сразу же использовать быстрое исправление Extract Constant.

Связанные советы