С помощью диалогового окна « Создать новый класс» и шаблонов файлов Android Studio поможет вам быстро создать следующие новые классы и типы:
- Java-классы
- Перечисление и одноэлементные классы
- Типы интерфейсов и аннотаций
После того, как вы заполните поля диалога Create New Class и нажмете OK , Android Studio создаст файл .java
, содержащий скелетный код, включая оператор пакета, все необходимые импорты, заголовок и объявление класса или типа. Затем вы можете добавить свой код в этот файл.
Шаблоны файлов определяют, как Android Studio генерирует скелетный код. Вы можете использовать шаблоны файлов, предоставленные вместе с Android Studio, как есть, или настроить их в соответствии с вашим процессом разработки.
Просмотр и настройка шаблонов файлов
Android Studio предоставляет шаблоны файлов, которые определяют, как создаются новые классы и типы Java с помощью диалога Create New Class . Вы можете настраивать эти шаблоны.
Рисунок 1. Диалоговое окно «Создать новый класс» .
Шаблоны файлов Android Studio включают код Velocity Template Language ( VTL ) и переменные, которые обрабатывают эти дополнительные параметры. Диалоговое окно Create New Class использует шаблоны файлов AnnotationType , Class , Enum , Interface и Singleton .
Чтобы просмотреть шаблоны, найти настройки и изменить шаблоны, выполните следующие действия:
Выполните одно из следующих действий:
- Для Windows или Linux выберите Файл > Настройки > Редактор > Шаблоны файлов и кода > Файлы .
- Для macOS выберите Android Studio > Настройки > Редактор > Шаблоны файлов и кода > Файлы .
В списке шаблонов внутренние имена шаблонов выделены жирным шрифтом. Настроенные имена шаблонов отображаются в цвете подсветки, например синем.
При необходимости настройте шаблоны файлов.
Если вы хотите использовать поля диалогового окна «Создать новый класс» , убедитесь, что ваши изменения соответствуют коду шаблона файла Android Studio .
Дополнительную информацию о шаблонах файлов, включая VTL, см. в разделах Шаблоны файлов и кода и Диалоговое окно «Шаблоны файлов и кода» .
Создание класса или типа Java
Android Studio помогает создавать новые классы Java, классы перечислений и синглтоны, а также типы интерфейсов и аннотаций на основе шаблонов файлов .
Чтобы создать новый класс или тип Java, выполните следующие действия:
- В окне «Проект» щелкните правой кнопкой мыши файл или папку Java и выберите «Создать» > «Класс Java» .
- В диалоговом окне «Создать новый класс» заполните поля:
- Имя — имя нового класса или типа. Оно должно соответствовать требованиям Java к именам. Не вводите расширение имени файла.
- Вид — выберите категорию класса или типа.
- Superclass — класс, от которого наследуется ваш новый класс. Вы можете ввести имя пакета и класса или только имя класса, а затем дважды щелкнуть элемент в раскрывающемся списке для его автозаполнения.
- Интерфейс(ы) — один или несколько интерфейсов, которые реализует новый класс или тип. Несколько интерфейсов должны быть разделены запятой с последующим необязательным пробелом. Вы можете ввести имя пакета и интерфейса или только имя интерфейса, а затем дважды щелкнуть элемент в раскрывающемся списке для его автозаполнения.
- Пакет — пакет, в котором будет находиться класс или тип. Значение по умолчанию автоматически отображается в поле. Если ввести имя пакета в поле, любые несуществующие части идентификатора пакета будут выделены красным; в этом случае Android Studio создаст пакет после нажатия кнопки OK . Это поле должно содержать значение; в противном случае файл Java не будет содержать оператор
package
, и класс или тип не будет помещен в пакет в проекте. - Видимость — выберите, будет ли класс или тип видимым для всех классов или только для тех, которые находятся в его собственном пакете.
- Модификаторы — выберите модификатор Abstract или Final для класса или ни один из них.
- Показать диалог выбора переопределений — для типа класса установите этот флажок, чтобы открыть диалог выбора методов для переопределения/реализации после нажатия кнопки ОК . В этом диалоговом окне вы можете выбрать методы, которые хотите переопределить или реализовать, и Android Studio сгенерирует скелетный код для этих методов.
- Нажмите ОК .
В качестве альтернативы выберите файл или папку Java в окне проекта или щелкните файл Java в редакторе кода. Затем выберите Файл > Создать > Класс Java .
Выбранный вами элемент определяет пакет по умолчанию для нового класса или типа.
Автозаполнение работает только для первого имени интерфейса. Обратите внимание, что хотя запятая и следующее имя интерфейса могут вызвать ошибку подсказки, вы можете игнорировать эту ошибку, поскольку она не влияет на сгенерированный код.
Значение по умолчанию зависит от того, как вы запустили диалоговое окно «Создать новый класс» . Если вы сначала выбрали файл или папку Java в окне проекта , значение по умолчанию — это пакет для выбранного вами элемента. Если вы сначала щелкнули файл Java в редакторе кода, значение по умолчанию — это пакет, содержащий этот файл.
Все поля, не относящиеся к типу , скрыты.
Android Studio создает файл Java со скелетным кодом, который вы можете изменять. Он открывает файл в редакторе кода.
Примечание: Вы можете создать класс Singleton, выбрав Файл > Создать > Singleton или Файл > Создать > Класс Java ; последний метод предлагает больше возможностей.
Шаблоны файлов Android Studio
В этом разделе перечислен код шаблона файла Android Studio, написанный на языке сценариев VTL , за которым следуют определения переменных. Значения, которые вы указываете в диалоговом окне Create New Class, становятся значениями переменных в шаблоне. Обратите внимание, что строки, начинающиеся с #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. Вы вводите значения в диалоговом окне Create New Class . Шаблон имеет следующие переменные, которые вы можете использовать:
-
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
.