Com a caixa de diálogo Create New Class e os modelos de arquivo correspondentes, o Android Studio ajuda a criar rapidamente os seguintes novos tipos e classes:
- Classes Java
- Classes de enumeração e singleton
- Tipos de interface e anotação
Depois que você preencher os campos da caixa de diálogo Create New Class e clicar
em OK, o Android Studio criará um arquivo .java
contendo
o código de esqueleto, incluindo uma declaração package, todas as importações necessárias, um cabeçalho
e uma declaração de classe ou tipo. Em seguida, você pode adicionar seu código a esse arquivo.
Modelos de arquivo especificam como o Android Studio gera o código do esqueleto. Com o Android Studio você pode usar os modelos de arquivo como estão ou personalizá-los para que se adequem ao seu processo de desenvolvimento.
Ver e personalizar modelos de arquivo
O Android Studio oferece modelos de arquivo que determinam como novas classes e tipos Java são criados com a caixa de diálogo Create New Class. Você pode personalizar esses modelos.
Os modelos de arquivo do Android Studio incluem o código Velocity Template Language (VTL, em inglês) e variáveis que processam essas outras opções. A caixa de diálogo Create New Class usa os modelos de arquivo AnnotationType, Class, Enum, Interface e Singleton.
Para ver e modificar os modelos e encontrar personalizações, siga estas etapas:
Siga uma das seguintes ações:
- Para Windows ou Linux, selecione File > Settings > Editor > File and Code Templates > Files.
- Para macOS, selecione Android Studio > Preferences > Editor > File and Code Templates > Files.
Na lista de modelos, os nomes dos modelos internos estão em negrito. Os nomes de modelos personalizados são mostrados com uma cor de destaque, como azul.
Personalize os modelos de arquivo conforme necessário.
Se você quiser usar os campos da caixa de diálogo Create New Class, verifique se as mudanças estão de acordo com o código do modelo de arquivo do Android Studio.
Para ver mais informações sobre modelos de arquivo, incluindo VTL, consulte Modelos de arquivo e código e Caixa de diálogo File and Code templates (links em inglês).
Criar uma classe ou um tipo Java
O Android Studio ajuda a criar novas classes Java, classes de enumeração e singleton e tipos de interface e anotação com base em modelos de arquivo.
Para criar uma nova classe ou tipo Java, siga estas etapas:
- Na janela Project, clique com o botão direito do mouse em um arquivo ou pasta Java e selecione New > Java Class.
- Na caixa de diálogo Create New Class, preencha os campos:
- Name: o nome da nova classe ou tipo. Ele precisa obedecer aos requisitos de nome Java. Não digite uma extensão de nome de arquivo.
- Kind: selecione a categoria da classe ou do tipo.
- Superclass: a classe da qual a nova classe herda. Você pode digitar o nome do pacote e da classe ou apenas o nome da classe e, em seguida, clicar duas vezes em um item da lista suspensa para preencher automaticamente.
- Interface(s): uma ou mais interfaces que a nova classe ou tipo implementa. As interfaces precisam ficar separadas por uma vírgula seguida por um espaço opcional. Você pode digitar o nome do pacote e da interface ou apenas o nome da interface e, em seguida, clicar duas vezes em um item da lista suspensa para preencher automaticamente.
- Package: o pacote em que a classe ou o tipo
residirá. O padrão aparecerá automaticamente no campo. Se você digitar um nome de pacote
no campo, as partes do identificador de pacote que não existirem serão
destacadas em vermelho. Nesse caso, o Android Studio criará o pacote depois que você
clicar em OK. Esse campo precisa conter um valor. Caso contrário, o arquivo
Java não incluirá uma instrução
package
, e a classe ou o tipo não será colocado em um pacote no projeto. - Visibility: selecione se a classe ou o tipo ficará visível para todas as classes ou apenas para as que estão no mesmo pacote.
- Modifiers: selecione o modificador Abstract ou Final para uma Class. Também é possível não selecionar nenhum.
- Show Select Overrides Dialog: para um Tipo de Classe, marque essa opção para abrir a caixa de diálogo Select Methods to Override/Implement após clicar em OK. Nessa caixa de diálogo, você pode selecionar métodos que gostaria de substituir ou implementar, e o Android Studio irá gerar um código de esqueleto para esses métodos.
- Clique em OK.
Como alternativa, selecione um arquivo ou pasta Java na janela Project ou clique em um arquivo Java no editor de código. Em seguida, selecione File > New > Java Class.
O item selecionado determina o pacote padrão para a nova classe ou tipo.
O preenchimento automático funciona apenas para o nome da primeira interface. Embora a vírgula e o nome da interface a seguir possam gerar uma dica errada, você pode ignorá-la, porque isso não afeta o código gerado.
O padrão depende a forma como a caixa de diálogo Create New Class foi iniciada. Se você selecionou um arquivo ou pasta Java na janela Project, o padrão será o pacote para o item selecionado. Se você clicou em um arquivo Java no editor de código, o padrão será o pacote que contém esse arquivo.
Todos os campos que não se aplicam ao Kind ficam ocultos.
O Android Studio cria um arquivo Java com código de esqueleto que você pode modificar. O arquivo abrirá no editor de código.
Observação: você pode criar uma classe singleton selecionando File > New > Singleton ou File > New > Java Class. A segunda técnica oferece mais opções.
Modelos de arquivos do Android Studio
Esta seção lista o código do modelo de arquivo do Android Studio escrito na linguagem de script VTL, seguido
pelas definições das variáveis. Os valores fornecidos na caixa de diálogo
Create New Class passam a ser os valores das variáveis do modelo.
As linhas que começam com
#if (${VISIBILITY}
se estendem até a chave aberta (
{
).
Modelo de arquivo 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 { }
Modelo de arquivo Class
#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 { }
Modelo de arquivo 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 { }
Modelo de arquivo Interface
#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 { }
Modelo de arquivo 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}() { } }
Variáveis de modelo de arquivo
O Android Studio substitui as variáveis do modelo de arquivo pelos valores do arquivo Java gerado. Você pode inserir os valores na caixa de diálogo Create New Class. O modelo tem as seguintes variáveis que você pode usar:
IMPORT_BLOCK
: uma lista delimitada por nova linha de declaraçõesimport
Java necessárias para oferecer compatibilidade com qualquer superclasse ou interface ou uma string vazia (""
). Por exemplo, se você implementar apenas a interfaceRunnable
e não estender nada, essa variável será"import java.lang.Runnable;\n"
. Se você implementar a interfaceRunnable
e estender a classeActivity
, ela será"import android.app.Activity;\nimportjava.lang.Runnable;\n"
.VISIBILITY
: se a classe terá acesso público ou não. Pode ter o valorPUBLIC
ouPACKAGE_PRIVATE
.SUPERCLASS
: um nome de classe único ou vazio. Se presente, haverá uma cláusulaextends ${SUPERCLASS}
após o novo nome de classe.INTERFACES
: uma lista de interfaces separadas por vírgulas ou vazia. Se presente, haverá uma cláusulaimplements ${INTERFACES}
após a superclasse ou após o nome de classe, caso não haja uma superclasse. Para tipos de interface e anotação, as interfaces têm a palavra-chaveextends
.ABSTRACT
: se a classe precisa ser abstrata ou não. Pode ter um valorTRUE
ouFALSE
.FINAL
: se a classe precisa ser final ou não. Pode ter um valorTRUE
ouFALSE
.