Un mécanisme pour effectuer ** l'inférence de type ** de ** variables locales **, qui est apparu depuis Java SE 10. Inférer le type de données du type sur le côté droit. L'inférence de type par var est effectuée au moment de la compilation.
** * [Qu'est-ce qu'une variable locale] ** Une variable déclarée dans ** dans une méthode ** (utilisée comme argument formel ou argument dans une méthode)
** ・ Exemple d'inférence de type par var **
var i = 10; //Inférer que i est de type int à partir de la valeur sur le côté droit
** Seules les variables locales peuvent être de type déduites par var! !! !! !! ** **
-Pour les variables autres que les variables locales (variable d'instance, variable statique, ** type de retour de méthode **) -S'il n'est pas initialisé lors de la déclaration de la variable (c'est-à-dire si seulement "var i;" et la variable sont créés) ・ Une fois initialisé avec null -Pour les variables qui affectent l'initialisation du tableau
var déduit le type de données du type sur le côté droit. Ensuite, l'initialiseur ({}) utilisé pour créer le tableau déduit également le type du tableau à partir du type de la valeur à affecter. Puisqu'ils se déduisent, le type n'est pas déterminé et une erreur de compilation se produit.
** - Exemple d'initialisation de tableau qui provoque une erreur de compilation **
var array = {1,2,3};
Cependant, si vous déclarez le type lors de la création de la valeur du tableau sur le côté droit, vous pouvez initialiser le tableau avec var.
** Exemple d'initialisation de tableau avec var **
var array = new int []{1,2,3}; //Vous pouvez créer un tableau de type int
Comme avec les tableaux, vous pouvez également créer une ArrayList avec var.
** - Initialisation de ArrayList avec var **
var list = new ArrayList<>();
L'opérateur de losange ArrayList ** renvoie ** Type d'objet ** lorsqu'il n'y a pas de type référençable. Par conséquent, le code ci-dessus est le même que le code ci-dessous.
var list = new ArrayList<Object>();
Un ArrayList de type Object est créé sous forme de liste.
Recommended Posts