Создайте класс Java или введите

С помощью диалогового окна « Создать новый класс» и шаблонов файлов 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 .

Чтобы просмотреть шаблоны, найти настройки и изменить шаблоны, выполните следующие действия:

  1. Выполните одно из следующих действий:

    • Для Windows или Linux выберите Файл > Настройки > Редактор > Шаблоны файлов и кода > Файлы .
    • Для macOS выберите Android Studio > Настройки > Редактор > Шаблоны файлов и кода > Файлы .

    В списке шаблонов внутренние имена шаблонов выделены жирным шрифтом. Настроенные имена шаблонов отображаются в цвете подсветки, например синем.

  2. При необходимости настройте шаблоны файлов.

    Если вы хотите использовать поля диалогового окна «Создать новый класс» , убедитесь, что ваши изменения соответствуют коду шаблона файла Android Studio .

Дополнительную информацию о шаблонах файлов, включая VTL, см. в разделах Шаблоны файлов и кода и Диалоговое окно «Шаблоны файлов и кода» .

Создание класса или типа Java

Android Studio помогает создавать новые классы Java, классы перечислений и синглтоны, а также типы интерфейсов и аннотаций на основе шаблонов файлов .

Чтобы создать новый класс или тип Java, выполните следующие действия:

  1. В окне «Проект» щелкните правой кнопкой мыши файл или папку Java и выберите «Создать» > «Класс Java» .
  2. В качестве альтернативы выберите файл или папку Java в окне проекта или щелкните файл Java в редакторе кода. Затем выберите Файл > Создать > Класс Java .

    Выбранный вами элемент определяет пакет по умолчанию для нового класса или типа.

  3. В диалоговом окне «Создать новый класс» заполните поля:
    • Имя — имя нового класса или типа. Оно должно соответствовать требованиям Java к именам. Не вводите расширение имени файла.
    • Вид — выберите категорию класса или типа.
    • Superclass — класс, от которого наследуется ваш новый класс. Вы можете ввести имя пакета и класса или только имя класса, а затем дважды щелкнуть элемент в раскрывающемся списке для его автозаполнения.
    • Интерфейс(ы) — один или несколько интерфейсов, которые реализует новый класс или тип. Несколько интерфейсов должны быть разделены запятой с последующим необязательным пробелом. Вы можете ввести имя пакета и интерфейса или только имя интерфейса, а затем дважды щелкнуть элемент в раскрывающемся списке для его автозаполнения.
    • Автозаполнение работает только для первого имени интерфейса. Обратите внимание, что хотя запятая и следующее имя интерфейса могут вызвать ошибку подсказки, вы можете игнорировать эту ошибку, поскольку она не влияет на сгенерированный код.

    • Пакет — пакет, в котором будет находиться класс или тип. Значение по умолчанию автоматически отображается в поле. Если ввести имя пакета в поле, любые несуществующие части идентификатора пакета будут выделены красным; в этом случае Android Studio создаст пакет после нажатия кнопки OK . Это поле должно содержать значение; в противном случае файл Java не будет содержать оператор package , и класс или тип не будет помещен в пакет в проекте.
    • Значение по умолчанию зависит от того, как вы запустили диалоговое окно «Создать новый класс» . Если вы сначала выбрали файл или папку Java в окне проекта , значение по умолчанию — это пакет для выбранного вами элемента. Если вы сначала щелкнули файл Java в редакторе кода, значение по умолчанию — это пакет, содержащий этот файл.

    • Видимость — выберите, будет ли класс или тип видимым для всех классов или только для тех, которые находятся в его собственном пакете.
    • Модификаторы — выберите модификатор Abstract или Final для класса или ни один из них.
    • Показать диалог выбора переопределений — для типа класса установите этот флажок, чтобы открыть диалог выбора методов для переопределения/реализации после нажатия кнопки ОК . В этом диалоговом окне вы можете выбрать методы, которые хотите переопределить или реализовать, и Android Studio сгенерирует скелетный код для этих методов.

    Все поля, не относящиеся к типу , скрыты.

  4. Нажмите ОК .
  5. 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 .