С помощью диалогового окна « Создать новый класс» и шаблонов файлов Android Studio поможет вам быстро создать следующие новые классы и типы:
- Java-классы
- Перечисление и одиночные классы
- Типы интерфейсов и аннотаций
После заполнения полей диалогового окна «Создать новый класс» и нажатия кнопки «ОК» Android Studio создаст файл .java
, содержащий скелетный код, включая оператор пакета, все необходимые импорты, заголовок и объявление класса или типа. Далее вы можете добавить свой код в этот файл.
Шаблоны файлов определяют, как Android Studio генерирует скелетный код. Вы можете использовать шаблоны файлов, предоставляемые Android Studio, «как есть» или настроить их в соответствии со своим процессом разработки.
Просмотр и настройка шаблонов файлов
Android Studio предоставляет шаблоны файлов, определяющие порядок создания новых классов и типов Java в диалоговом окне «Создать новый класс» . Вы можете настроить эти шаблоны.
Рисунок 1. Диалоговое окно «Создать новый класс» .
Шаблоны файлов Android Studio включают код языка шаблонов Velocity ( VTL ) и переменные, которые обрабатывают эти дополнительные параметры. Диалоговое окно «Создать новый класс» использует шаблоны файлов AnnotationType , Class , Enum , Interface и Singleton .
Чтобы просмотреть шаблоны, найти настройки и изменить шаблоны, выполните следующие действия:
Выполните одно из следующих действий:
- Для Windows или Linux выберите Файл > Настройки > Редактор > Шаблоны файлов и кода > Файлы .
- Для macOS выберите Android Studio > Настройки > Редактор > Шаблоны файлов и кода > Файлы .
В списке шаблонов внутренние названия шаблонов выделены жирным шрифтом. Названия пользовательских шаблонов выделены цветом, например, синим.
При необходимости настройте шаблоны файлов.
Если вы хотите использовать поля диалогового окна «Создать новый класс» , убедитесь, что ваши изменения соответствуют коду шаблона файла Android Studio .
Дополнительные сведения о шаблонах файлов, включая VTL, см. в разделах Шаблоны файлов и кодов и Диалоговое окно «Шаблоны файлов и кодов» .
Создание класса или типа Java
Android Studio помогает создавать новые классы Java, классы перечислений и одиночные классы, а также типы интерфейсов и аннотаций на основе шаблонов файлов .
Чтобы создать новый класс или тип Java, выполните следующие действия:
- В окне «Проект» щелкните правой кнопкой мыши файл или папку Java и выберите «Создать» > «Класс Java» .
- В диалоговом окне «Создать новый класс» заполните поля:
- Имя — имя нового класса или типа. Оно должно соответствовать требованиям Java к именам. Не указывайте расширение имени файла.
- Вид - Выберите категорию класса или типа.
- Суперкласс — класс, от которого наследуется ваш новый класс. Вы можете ввести имя пакета и класса или только имя класса, а затем дважды щёлкнуть по элементу в раскрывающемся списке для автодополнения.
- Интерфейс(ы) — один или несколько интерфейсов, реализуемых новым классом или типом. Несколько интерфейсов следует разделять запятой и необязательным пробелом. Вы можете ввести имя пакета и интерфейса или только имя интерфейса, а затем дважды щёлкнуть по элементу в раскрывающемся списке для автодополнения.
- Пакет — пакет, в котором будет находиться класс или тип. Значение по умолчанию автоматически отображается в поле. Если ввести имя пакета в поле, все несуществующие части идентификатора пакета будут выделены красным; в этом случае Android Studio создаст пакет после нажатия кнопки «ОК» . Это поле должно содержать значение; в противном случае файл Java не будет содержать оператор
package
, и класс или тип не будет помещен в пакет в проекте. - Видимость — выберите, будет ли класс или тип видимым для всех классов или только для тех, которые находятся в его собственном пакете.
- Модификаторы — выберите для класса модификатор Abstract или Final или ни один из них.
- Показать диалоговое окно выбора переопределений — для типа класса установите этот флажок, чтобы после нажатия кнопки «ОК» открывался диалог «Выбор методов для переопределения/реализации» . В этом диалоговом окне вы можете выбрать методы, которые хотите переопределить или реализовать, и Android Studio сгенерирует для них скелетный код.
- Нажмите ОК .
Либо выберите файл или папку Java в окне «Проект» или щёлкните по файлу Java в редакторе кода. Затем выберите «Файл» > «Создать» > «Класс Java» .
Выбранный вами элемент определяет пакет по умолчанию для нового класса или типа.
Автодополнение работает только для первого имени интерфейса. Обратите внимание: хотя запятая и следующее за ней имя интерфейса могут вызвать ошибку во всплывающей подсказке, вы можете игнорировать эту ошибку, поскольку она не влияет на сгенерированный код.
Значение по умолчанию зависит от способа открытия диалогового окна « Создать новый класс» . Если вы сначала выбрали файл или папку Java в окне «Проект» , значением по умолчанию будет пакет для выбранного вами элемента. Если вы сначала щёлкнули по файлу Java в редакторе кода, значением по умолчанию будет пакет, содержащий этот файл.
Любые поля, не относящиеся к типу , скрыты.
Android Studio создаёт файл Java с шаблоном кода, который можно изменять. Файл открывается в редакторе кода.
Примечание: вы можете создать класс Singleton, выбрав Файл > Новый > Singleton или Файл > Новый > Класс Java ; последний метод предлагает больше возможностей.
Шаблоны файлов Android Studio
В этом разделе представлен код шаблона файла Android Studio, написанный на языке сценариев VTL , а также определения переменных. Значения, указанные в диалоговом окне «Создать новый класс», становятся значениями переменных в шаблоне. Обратите внимание, что строки, начинающиеся с #if (${VISIBILITY}
доходят до открывающей фигурной скобки ( {
).
Шаблон файла AnnotationType
#if (${PACKAGE_NAME} != "")package ${PACKAGE_NAME};#end #if (${IMPORT_BLOCK} != "")${IMPORT_BLOCK} #end #parse("File Header.java") #if (${VISIBILITY} == "PUBLIC")public #end @interface ${NAME} #if (${INTERFACES} != "")extends ${INTERFACES} #end { }
Шаблон файла класса
#if (${PACKAGE_NAME} != "")package ${PACKAGE_NAME};#end #if (${IMPORT_BLOCK} != "")${IMPORT_BLOCK} #end #parse("File Header.java") #if (${VISIBILITY} == "PUBLIC")public #end #if (${ABSTRACT} == "TRUE")abstract #end #if (${FINAL} == "TRUE")final #end class ${NAME} #if (${SUPERCLASS} != "")extends ${SUPERCLASS} #end #if (${INTERFACES} != "")implements ${INTERFACES} #end { }
Шаблон файла Enum
#if (${PACKAGE_NAME} != "")package ${PACKAGE_NAME};#end #if (${IMPORT_BLOCK} != "")${IMPORT_BLOCK} #end #parse("File Header.java") #if (${VISIBILITY} == "PUBLIC")public #end enum ${NAME} #if (${INTERFACES} != "")implements ${INTERFACES} #end { }
Шаблон файла интерфейса
#if (${PACKAGE_NAME} != "")package ${PACKAGE_NAME};#end #if (${IMPORT_BLOCK} != "")${IMPORT_BLOCK} #end #parse("File Header.java") #if (${VISIBILITY} == "PUBLIC")public #end enum ${NAME} #if (${INTERFACES} != "")implements ${INTERFACES} #end { #end { }
Шаблон файла Singleton
#if (${PACKAGE_NAME} != "")package ${PACKAGE_NAME};#end #if (${IMPORT_BLOCK} != "")${IMPORT_BLOCK} #end #parse("File Header.java") #if (${VISIBILITY} == "PUBLIC")public #end class ${NAME} #if (${SUPERCLASS} != "")extends ${SUPERCLASS} #end #if (${INTERFACES} != "")implements ${INTERFACES} #end { private static final ${NAME} ourInstance = new ${NAME}(); #if (${VISIBILITY} == "PUBLIC")public #end static ${NAME} getInstance() { return ourInstance; } private ${NAME}() { } }
Переменные шаблона файла
Android Studio заменяет переменные шаблона файла значениями в сгенерированном файле Java. Значения вводятся в диалоговом окне «Создать новый класс» . Шаблон содержит следующие переменные, которые можно использовать:
-
IMPORT_BLOCK
— список операторовimport
Java, разделённых символами новой строки, необходимых для поддержки любого суперкласса или интерфейсов, или пустая строка (""
). Например, если вы реализуете только интерфейсRunnable
и ничего не расширяете, эта переменная будет иметь вид"import java.lang.Runnable;\n"
. Если вы реализуете интерфейсRunnable
и расширяете классActivity
, это будет"import android.app.Activity;\nimportjava.lang.Runnable;\n"
. -
VISIBILITY
— определяет, будет ли класс иметь публичный доступ. Может иметь значениеPUBLIC
илиPACKAGE_PRIVATE
. -
SUPERCLASS
— имя отдельного класса или пустое. Если присутствует, после имени нового класса будет добавлено предложениеextends ${SUPERCLASS}
. -
INTERFACES
— список интерфейсов, разделённый запятыми, или пустой. Если он присутствует, после суперкласса или после имени класса, если суперкласс отсутствует, будет указано предложениеimplements ${INTERFACES}
. Для интерфейсов и типов аннотаций интерфейсы имеют ключевое словоextends
. -
ABSTRACT
— определяет, должен ли класс быть абстрактным. Может иметь значениеTRUE
илиFALSE
. -
FINAL
— определяет, должен ли класс быть окончательным. Может иметь значениеTRUE
илиFALSE
.