Créer une classe ou un type Java

Grâce à la boîte de dialogue Create New Class (Créer une classe) et aux modèles de fichier, Android Studio vous permet de créer rapidement les classes et les types suivants :

  • Classes Java
  • Classes d'énumération et singleton
  • Types d'interface et d'annotation

Une fois que vous avez renseigné les champs de la boîte de dialogue Create New Class et cliqué sur OK, Android Studio crée un fichier .java contenant le code de squelette, qui inclut une instruction de package, toute importation nécessaire, un en-tête et une déclaration de type ou de classe. Vous pouvez ensuite ajouter votre code à ce fichier.

Les modèles de fichier indiquent la manière dont Android Studio génère le code de squelette. Vous pouvez utiliser les modèles de fichier fournis avec Android Studio tels quels ou les personnaliser en fonction de votre processus de développement.

Afficher et personnaliser des modèles de fichier

Android Studio fournit des modèles de fichier qui déterminent la méthode de création des types et classes Java dans la boîte de dialogue Create New Class (Créer une classe). Vous pouvez personnaliser ces modèles.

Boîte de dialogue "Create New Class" (Créer une classe).

Figure 1. Boîte de dialogue Create New Class (Créer une classe).

Les modèles de fichier Android Studio comprennent du code VTL (Velocity Template Language) et des variables qui gèrent ces options supplémentaires. La boîte de dialogue Create New Class utilise les modèles de fichier AnnotationType, Class, Enum, Interface et Singleton.

Pour afficher et modifier les modèles, et rechercher des personnalisations, procédez comme suit :

  1. Effectuez l'une des opérations suivantes :

    • Sous Windows ou Linux, sélectionnez File > Settings > Editor > File and Code Templates > Files (Fichier > Paramètres > Éditeur > Modèles de fichier et de code > Fichiers).
    • Sous macOS, sélectionnez Android Studio > Preferences > Editor > File and Code Templates > Files (Android Studio > Préférences > Éditeur > Modèles de fichier et de code > Fichiers).

    Dans la liste des modèles, les noms des modèles internes sont indiqués en gras. Les noms des modèles personnalisés sont affichés dans une couleur de surlignage ; en bleu, par exemple.

  2. Personnalisez les modèles de fichier selon vos besoins.

    Si vous souhaitez utiliser les champs de la boîte de dialogue Create New Class (Créer une classe), assurez-vous que vos modifications sont conformes au code du modèle de fichier Android Studio.

Pour en savoir plus sur les modèles de fichier, y compris sur VTL, consultez Modèles de fichier et de code et Boîte de dialogue "File and Code Templates" (Modèles de fichier et de code).

Créer un type ou une classe Java

Android Studio vous permet de créer des classes Java, des classes d'énumération et singleton, ainsi que des types d'interface et d'annotation basés sur des modèles de fichier.

Pour créer un type ou une classe Java, procédez comme suit :

  1. Dans la fenêtre Project (Projet), effectuez un clic droit sur un fichier ou un dossier Java, puis sélectionnez New > Java Class (Nouveau > Classe Java).
  2. Vous pouvez également sélectionner un fichier ou un dossier Java dans la fenêtre Project (Projet), ou cliquer sur un fichier Java dans l'éditeur de code. Sélectionnez ensuite File > New > Java Class (Fichier > Nouveau > Classe Java).

    L'élément sélectionné détermine le package par défaut de la nouvelle classe ou du nouveau type.

  3. Dans la boîte de dialogue Create New Class (Créer une classe), renseignez les champs suivants :
    • Name (Nom) : nom de la nouvelle classe ou du nouveau type. Il doit être conforme aux règles d'attribution des noms Java. Ne saisissez pas d'extension de nom de fichier.
    • Kind (Genre) : sélectionnez la catégorie de classe ou de type.
    • Superclass (Super-classe) : classe dont votre nouvelle classe hérite. Vous pouvez saisir le nom du package et de la classe, ou simplement le nom de la classe, puis double-cliquer sur un élément de la liste déroulante pour le renseigner automatiquement.
    • Interface(s) : une ou plusieurs interfaces implémentées par le nouveau type ou la nouvelle classe. S'il y a plusieurs interfaces, elles doivent être séparées par une virgule, suivie d'un espace facultatif. Vous pouvez saisir le nom du package et de l'interface, ou simplement le nom de l'interface, puis double-cliquer sur un élément de la liste déroulante pour le renseigner automatiquement.
    • La saisie semi-automatique fonctionne uniquement pour le premier nom d'interface. Bien que la virgule et le nom d'interface suivant puissent générer une erreur d'info-bulle, vous pouvez l'ignorer, car elle n'affecte pas le code généré.

    • Package : package dans lequel résidera la classe ou le type. La valeur par défaut s'affiche automatiquement dans le champ. Si vous saisissez un nom de package dans le champ, les parties de l'identifiant de package qui n'existent pas sont mises en surbrillance rouge. Dans ce cas, Android Studio crée le package après que vous avez cliqué sur OK. Ce champ doit contenir une valeur, sans quoi le fichier Java ne contiendra pas d'instruction package, et la classe ou le type ne sera pas placé dans un package du projet.
    • La valeur par défaut dépend de la manière dont vous avez ouvert la boîte de dialogue Create New Class. Si vous avez d'abord sélectionné un fichier ou un dossier Java dans la fenêtre Project (Projet), la valeur par défaut est le package de l'élément que vous avez sélectionné. Si vous avez d'abord cliqué sur un fichier Java dans l'éditeur de code, la valeur par défaut est le package qui contient ce fichier.

    • Visibility (Visibilité) : indiquez si la classe ou le type est visible par toutes les classes, ou uniquement par celles de son propre package.
    • Modifiers (Modificateurs) : sélectionnez le modificateur Abstract (Abstrait) ou Final pour une classe (Class), ou aucun des deux.
    • Show Select Overrides Dialog (Afficher la boîte de dialogue "Sélectionner les remplacements") : pour le Genre Classe, cochez cette option pour ouvrir la boîte de dialogue "Sélectionner les méthodes à ignorer/implémenter" après avoir cliqué sur OK. Cette boîte de dialogue vous permet de sélectionner les méthodes que vous souhaitez ignorer ou implémenter. Android Studio générera alors un code de squelette pour ces méthodes.

    Tous les champs qui ne s'appliquent pas au Kind sont masqués.

  4. Cliquez sur OK.
  5. Android Studio crée un fichier Java avec un code de squelette que vous pouvez modifier. Le fichier s'ouvre dans l'éditeur de code.

Remarque : Vous pouvez créer une classe singleton en sélectionnant File > New > Singleton (Fichier > Nouveau > Singleton) ou File > New > Java Class (Fichier > Nouveau > Classe Java), cette dernière technique offrant davantage d'options.

Modèles de fichier Android Studio

Cette section présente le code du modèle de fichier Android Studio écrit dans le langage de script VTL, suivi des définitions des variables. Les valeurs que vous fournissez dans la boîte de dialogue Create New Class (Créer une classe) deviendront les valeurs de variable dans le modèle. Notez que les lignes commençant par #if (${VISIBILITY} s'étendent jusqu'à l'accolade ouvrante ({).

Modèle de fichier 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 {
}

Modèle de fichier 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 {
}

Modèle de fichier 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 {
}

Modèle de fichier 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 {
}

Modèle de fichier 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 modèle de fichier

Android Studio remplace les variables du modèle de fichier par les valeurs du fichier Java généré. Saisissez les valeurs dans la boîte de dialogue Create New Class (Créer une classe). Le modèle contient les variables suivantes que vous pouvez utiliser :

  • IMPORT_BLOCK : liste d'instructions import Java délimitées par un retour à la ligne nécessaires pour prendre en charge des super-classes ou des interfaces, ou chaîne vide (""). Par exemple, si vous implémentez uniquement l'interface Runnable et n'étendez rien, cette variable sera "import java.lang.Runnable;\n". Si vous implémentez l'interface Runnable et étendez la classe Activity, il s'agira de "import android.app.Activity;\nimportjava.lang.Runnable;\n".
  • VISIBILITY : indique si la classe sera accessible au public ou non. La valeur peut être PUBLIC ou PACKAGE_PRIVATE.
  • SUPERCLASS : nom de classe unique, ou vide. Si une valeur est renseignée, une clause extends ${SUPERCLASS} est indiquée après le nom de la nouvelle classe.
  • INTERFACES : liste d'interfaces séparées par une virgule ou vide. Si une valeur est renseignée, une clause implements ${INTERFACES} est indiquée après la super-classe, ou après le nom de la classe en l'absence de super-classe. Pour les types d'annotation et d'interface, les interfaces comportent le mot clé extends.
  • ABSTRACT : indique si la classe doit être abstraite ou non. La valeur peut être TRUE ou FALSE.
  • FINAL : indique si la classe doit être finale ou non. La valeur peut être TRUE ou FALSE.