С помощью диалогового окна « Создать новый класс» и шаблонов файлов Android Studio помогает быстро создавать следующие новые классы и типы:
- Java-классы
- Перечисления и одноэлементные классы
- Типы интерфейса и аннотаций
После того, как вы заполните поля диалогового окна «Создать новый класс» и нажмете «ОК» , Android Studio создаст файл .java
, содержащий скелетный код, включая оператор пакета, все необходимые операции импорта, заголовок и объявление класса или типа. Далее вы можете добавить свой код в этот файл.
Шаблоны файлов определяют, как Android Studio генерирует скелетный код. Вы можете использовать шаблоны файлов, поставляемые с Android Studio, как есть или настроить их в соответствии с вашим процессом разработки.
Просмотр и настройка шаблонов файлов
Android Studio предоставляет шаблоны файлов, которые определяют, как создаются новые классы и типы Java с помощью диалогового окна «Создать новый класс» . Вы можете настроить эти шаблоны.
Шаблоны файлов 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» или «Файл» > «Создать» > «Класс 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 { }
Шаблон файла перечисления
#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 { }
Шаблон файла синглтона
#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
.