Как сократить импорт в Android Studio для более чистого кода

#android #android-studio

#Android #android-studio

Вопрос:

Есть ли простой ярлык в Android Studio для рефакторинга этого:

 @GET(WSConstants.ENDPOINT_SINGLE_ACCOUNT)
suspend fun getAccount(@Path(WSConstants.PARAM_ACCOUNT_ID) accountId: String?): Call<Account>
  

Для:

 @GET(ENDPOINT_SINGLE_ACCOUNT)
suspend fun getAccount(@Path(PARAM_ACCOUNT_ID) accountId: String?): Call<Account>
  

И, во-вторых, считается ли это хорошей практикой? Я думаю, что это выглядит чище.

Ответ №1:

При импорте напишите полный путь к статическим переменным. Например:

 import my.package.name.WSConstants.ENDPOINT_SINGLE_ACCOUNT
import my.package.name.WSConstants.PARAM_ACCOUNT_ID
  

Комментарии:

1. Мне нужен ярлык. Написание полного пути — слишком большая работа

2. Импорт не может быть сокращен. Но после ввода полного пути вы можете использовать константы, как вы просили

3. Я уверен, что в Android Studio должна быть какая-то настройка.

Ответ №2:

AFAIK нет простого решения, чтобы делать то, что вы хотите. Итак:

Решение # 1

Например, нажмите на каждое поле ENDPOINT_SINGLE_ACCOUNT и нажмите Alt Enter, затем нажмите на первый вариант, который естьAdd import for .... Он заменяет все вхождения выбранного поля на желаемые обозначения в текущем файле.


Решение # 2

Самый короткий способ сделать это — использовать wildcard imports ( * ) при импорте нескольких полей. Это был бы самый высокий уровень сокращения.

 import your-package.*
  

Чтобы воспользоваться преимуществами этой краткости, сначала извлеките свои константы из класса object и поместите их в файл kotlin:

WSConstants.kt

 package your-package

const val ENDPOINT_SINGLE_ACCOUNT = "..."
const val PARAM_ACCOUNT_ID = "..."
  

Затем

  1. Нажмите Ctrl ShiftR, чтобы открыть Replace in Path окно

  2. Включите регулярное выражение, нажав .* справа от окна

  3. WSConstants[.*] Замените пустой строкой, чтобы удалить WSConstants. шаблоны в классах

заменить WSConstants

введите описание изображения здесь


Дополнительные:

Чтобы определить свою собственную политику для организации импорта, вы можете сделать это из:

Файл> Настройки> Редактор> Стиль кода> Kotlin> Импорт (вкладка)

Комментарии:

1. Я удивлен, что нет простого решения, потому что я думаю, что это определенно делает код более читаемым и простым. Но спасибо за это!

2. Спасибо, Джим 🙂 Да, я изучил все связанные документы IntelliJ, чтобы найти подсказку, к сожалению, безуспешно. Я согласен с вами, таким образом, код выглядит более чистым, по крайней мере, из-за удаления ненужных префиксов фрагментация кода происходит меньше.

Ответ №3:

В Java нет механизма сглаживания импорта. Вы не можете импортировать два класса с одинаковым именем и использовать их оба неквалифицированными.

Импортируйте один класс и используйте полное имя для другого, т. е.

 import com.text.Formatter;

private Formatter textFormatter;
private com.json.Formatter jsonFormatter;