[Java Siler] À propos de l'inférence de type par var

Qu'est-ce que var

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! !! !! !! ** **

Motif qui ne peut pas utiliser var (une erreur de compilation se produit)

-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

Précautions lors de la création d'un tableau avec var

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

Précautions lors de la création d'une ArrayList avec var

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

[Java Siler] À propos de l'inférence de type par var
À propos de Java Var
À propos de var utilisé en Java (type de variable locale)
[Java] Points à noter sur l'inférence de type étendue dans Java 10
[JDK 10] Inférence de type à l'aide de var
[Connaissance de base de Java] À propos de la conversion de type
Conversion de type Java
À propos de l'interface Java
[Java] À propos des fonctionnalités de Java 12
[Introduction à Java] À propos de la conversion de type (distribution, promotion)
[Java] À propos des tableaux
[Java] Type d'énumération
Java Type facultatif
Quelque chose à propos de java
Où est Java
À propos des fonctionnalités Java
À propos des threads Java
Interface [Java]
Java double type
À propos de la classe Java
À propos des tableaux Java
À propos de l'héritage Java
À propos de l'interface, interface java
À propos de Java Literal
À propos des commandes Java
A propos du type de données de base Java et de la mémoire du type de référence
À propos des données locales CLDR activées par défaut à partir de Java 9
À propos de la sortie du journal Java
À propos de l'interface fonctionnelle Java
Java, à propos d'un tableau à deux dimensions
À propos de la division de classe (Java)
À propos de [Java] [StreamAPI] allMatch ()
À propos de la classe Java StringBuilder
[Java] À propos de la classe Singleton
[Java] Type de données ①-Type de base
À propos de la liaison de méthode Java
[Java] À propos des classes anonymes
A propos des méthodes de fractionnement (Java)
[Java Silver] À propos de l'initialisation
A propos de la liste des baies Java
À propos du polymorphisme Java Super ()
[Java, Kotlin] Variance de type
Champ de type de classe Java
Détermination de type en Java
Étudier Java # 1 (type typique)
À propos de l'héritage (Java Silver)
À propos de la classe Java String
À propos des modificateurs d'accès Java
À propos des expressions Java lambda
À propos des points d'entrée Java
Prise en charge de Java 10 Docker
Résumé personnel sur Java
À propos de l'API Apache Inference
Tout sur la programmation Java
À propos de la classe abstraite de Java
[Java] Conversion de type de date
Différences dans le SDK (Jar) inclus par JDK Vender de type Java 8
[Pour les débutants] À propos de la syntaxe JavaScript expliquée par Java Gold