С помощью диалогового окна « Создать новый класс» и шаблонов файлов Android Studio позволяет быстро создавать следующие новые классы и типы:
- Java-классы
- Перечисления и классы-одиночки
- Типы интерфейсов и аннотаций
После заполнения полей диалогового окна «Создать новый класс» и нажатия кнопки «ОК » Android Studio создаст файл .java , содержащий базовый код, включая объявление пакета, необходимые импорты, заголовочный файл и объявление класса или типа. Затем вы можете добавить свой код в этот файл.
Шаблоны файлов определяют, как Android Studio генерирует базовый код. Вы можете использовать предоставленные Android Studio шаблоны файлов как есть или настроить их в соответствии со своим процессом разработки.
Просмотр и настройка шаблонов файлов
Android Studio предоставляет шаблоны файлов, определяющие способ создания новых классов и типов Java с помощью диалогового окна «Создать новый класс» . Вы можете настроить эти шаблоны.

Рисунок 1. Диалоговое окно « Создать новый класс» .
В шаблонах файлов Android Studio содержится код Velocity Template Language ( 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-файл с базовым кодом, который вы можете изменять. Затем файл открывается в редакторе кода.
Примечание: Вы можете создать класс-одиночку, выбрав Файл > Создать > Одиночка или Файл > Создать > Класс 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 {
}
Шаблон файла 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— список операторовimportJava, разделённых символом новой строки, необходимых для поддержки любого суперкласса или интерфейса, или пустая строка (""). Например, если вы реализуете только интерфейс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.