Con el diálogo Create New Class y las plantillas de archivo, Android Studio te ayuda a crear rápidamente los siguientes tipos y clases nuevos:
- Clases de Java
- Clases singleton y de enumeración
- Tipos de interfaces y de anotaciones
Una vez que completes los campos del diálogo Create New Class y hagas clic en OK, Android Studio creará un archivo .java
que contenga el código base, el cual incluye una declaración del paquete, las importaciones necesarias, un encabezado y una declaración de tipo o clase. Luego, podrás agregar tu código en este archivo.
En las plantillas de archivo, se especifica la manera en que Android Studio genera el código base. Puedes usar las plantillas de archivo que ofrece Android Studio como están o personalizarlas para que se adapten a tu proceso de desarrollo.
Cómo ver y personalizar plantillas de archivo
Android Studio ofrece plantillas de archivo que determinan cómo se crean los nuevos tipos y clases de Java con el diálogo Create New Class. Estas se pueden personalizar.
En las plantillas de archivo de Android Studio, se incluyen variables y código Velocity Template Language (VTL) que controlan estas opciones adicionales. El diálogo Create New Class usa las plantillas de archivo AnnotationType, Class, Enum, Interface y Singleton.
Para ver, personalizar y modificar las plantillas, sigue estos pasos:
Realiza alguna de las siguientes acciones:
- En Windows o Linux, selecciona File > Settings > Editor > File and Code Templates > Files.
- En Mac OS, selecciona Android Studio > Preferences > Editor > File and Code Templates > Files.
En la lista de plantillas, los nombres de las plantillas internas se muestran en negrita. En cambio, los nombres de las plantillas personalizadas se muestran en un color de resaltado, como el azul.
Personaliza las plantillas según sea necesario.
Si quieres usar los campos del diálogo Create New Class, asegúrate de que tus cambios cumplan con el código de plantillas de archivo de Android Studio.
Para obtener más información sobre las plantillas de archivo, incluido VTL, consulta Plantillas de código y archivo y Diálogo de plantillas de código y archivo.
Cómo crear un tipo o una clase de Java
Android Studio te ayuda a crear nuevas clases de Java, clases singleton y de enumeración, y tipos de interfaces y de anotaciones basados en plantillas de archivo.
Para crear un nuevo tipo o clase de Java, sigue estos pasos:
- En la ventana Project, haz clic con el botón derecho en una carpeta o un archivo Java y selecciona New > Java Class.
- En el diálogo Create New Class, completa los siguientes campos:
- Name: Corresponde al nombre del nuevo tipo o clase, que debe cumplir con los requisitos para nombres de Java. No escribas una extensión de nombre de archivo.
- Kind: Selecciona la categoría de la clase o del tipo.
- Superclass: Corresponde a la clase de la cual heredas tu nueva clase. Puedes escribir el nombre de la clase y del paquete o solo el nombre de la clase y, luego, hacer doble clic en un elemento de la lista desplegable para que se complete automáticamente.
- Interface(s): Corresponde a una o varias interfaces que implementan el nuevo tipo o clase. En caso de haber varias interfaces, estas deben separarse con una coma seguida de un espacio opcional. Puedes escribir el nombre de la interfaz y del paquete o solo el de la interfaz y, luego, hacer doble clic en un elemento de la lista desplegable para que se complete automáticamente.
- Package: Corresponde al paquete en el que se alojará el tipo o la clase. El valor predeterminado aparecerá en el campo automáticamente. Si escribes el nombre de un paquete en el campo, los fragmentos del identificador del paquete que no existen se destacarán en rojo; en este caso, Android Studio creará el paquete luego de que hagas clic en OK. Este campo debe contener un valor; de lo contrario, el archivo Java no incluirá una declaración de
package
, y el tipo o la clase no se ubicará dentro del paquete en el proyecto. - Visibility: Permite definir si la clase o el tipo podrán verse para todas las clases, o bien solo para las que se incluyen en su paquete.
- Modifiers: Selecciona el modificador Abstract o Final para una Class, o bien ninguno.
- Show Select Overrides Dialog: En el caso de un Kind de Class, deberás marcar esta opción para abrir el diálogo Select Methods to Override/Implement luego de hacer clic en OK. En este diálogo, puedes seleccionar los métodos que quieres anular o implementar, y Android Studio generará el código base para ellos.
- Haz clic en OK.
De manera alternativa, puedes seleccionar una carpeta o un archivo Java en la ventana Project, o bien hacer clic en un archivo Java desde el editor de código. Luego, selecciona File > New > Java Class.
El elemento que selecciones determinará el paquete predeterminado para el nuevo tipo o clase.
La opción autocompletar solo funciona con el nombre de la primera interfaz. Ten en cuenta que, si bien la coma y el nombre de la interfaz siguiente pueden generar un error de información sobre la herramienta, puedes ignorarlo, ya que este no afecta al código generado.
El valor predeterminado depende de cómo inicies el diálogo Create New Class. Si primero seleccionaste una carpeta o un archivo Java en la ventana Project, el valor predeterminado será el paquete de ese elemento. Sin embargo, si primero hiciste clic en el archivo Java en el editor de código, el valor predeterminado será el paquete que contiene este archivo.
Se ocultarán los campos que no correspondan a Kind.
Android Studio creará un archivo Java con un código base que podrás modificar y, luego, lo abrirá en el editor de código.
Nota: Para crear una clase singleton, selecciona File > New > Singleton o File > New > Java Class; la última técnica ofrece más opciones.
Plantillas de archivo de Android Studio
En esta sección, se enumera el código de plantillas de archivo de Android Studio escrito en el lenguaje de programación VTL, seguido de las definiciones de las variables. Los valores que proporciones en el diálogo Create New Class serán los valores de las variables en la plantilla.
Ten en cuenta que las líneas que comienzan con #if (${VISIBILITY}
se extienden hasta la llave de apertura ({
).
Plantilla de archivo 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 { }
Plantilla de archivo 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 { }
Plantilla de archivo 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 { }
Plantilla de archivo 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 { }
Plantilla de archivo 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}() { } }
Variables de plantilla de archivo
Android Studio reemplaza las variables de la plantilla de archivo con valores del archivo Java generado. Deberás ingresar los valores en el diálogo Create New Class. La plantilla tiene las siguientes variables que puedes usar:
IMPORT_BLOCK
: Corresponde a una lista de las declaracionesimport
de Java delimitadas por un salto de línea que son necesarias para admitir cualquier superclase o interfaz, o bien a una string vacía (""
). Por ejemplo, si solo implementas la interfazRunnable
y no extiendes ningún elemento, esta variable será"import java.lang.Runnable;\n"
. Si implementas la interfazRunnable
y extiendes la claseActivity
, será"import android.app.Activity;\nimportjava.lang.Runnable;\n"
.VISIBILITY
: Determina si la clase es de acceso público o no. El valor puede serPUBLIC
oPACKAGE_PRIVATE
.SUPERCLASS
: Corresponde a un nombre de clase único o vacío. Si está presente, verás una cláusulaextends ${SUPERCLASS}
después del nombre de la nueva clase.INTERFACES
: Corresponde a una lista de interfaces separadas por comas, o bien vacías. Si está presente, verás una cláusulaimplements ${INTERFACES}
después de la superclase o, si no hay una superclase, después del nombre de la clase. En el caso de los tipos de anotaciones y de interfaces, las interfaces tendrán la palabra claveextends
.ABSTRACT
: Determina si la clase debe ser abstracta o no. El valor puede serTRUE
oFALSE
.FINAL
: Determina si la clase debe ser final o no. El valor puede serTRUE
oFALSE
.