Industriële fabricage
Industrieel internet der dingen | Industriële materialen | Onderhoud en reparatie van apparatuur | Industriële programmering |
home  MfgRobots >> Industriële fabricage >  >> Industrial programming >> Java

Java 10 - Inferentie van het lokale variabele type

JEP 286 − Inferentie type lokale variabele

Inferentie van het lokale variabele type is een van de meest duidelijke taalveranderingen die beschikbaar zijn vanaf Java 10. Het maakt het mogelijk om een ​​variabele te definiëren met var en zonder het type ervan op te geven. De compiler leidt het type van de variabele af met behulp van de opgegeven waarde. Dit type gevolgtrekking is beperkt tot lokale variabelen.

Oude manier om lokale variabele te declareren.

String name = "Welcome to tutorialspoint.com";

Nieuwe manier om lokale variabele te declareren.

var name = "Welcome to tutorialspoint.com";

Nu leidt de compiler het type naamvariabele af als String door de opgegeven waarde te inspecteren.

Opmerkelijke punten

  • Geen type-inferentie in het geval van lidvariabele, methodeparameters, retourwaarden.

  • Lokale variabele moet worden geïnitialiseerd op het moment van declaratie, anders wordt de compiler niet afgeleid en wordt er een fout gegenereerd.

  • Inferentie van lokale variabelen is beschikbaar in het initialisatieblok van lusinstructies.

  • Geen runtime-overhead. Aangezien de compiler het type afleidt op basis van de opgegeven waarde, is er geen prestatieverlies.

  • Geen dynamische typeverandering. Als het type lokale variabele eenmaal is afgeleid, kan het niet meer worden gewijzigd.

  • Complexe standaardtekstcode kan worden gereduceerd met behulp van lokale variabele type-inferentie.

Map<Integer, String> mapNames = new HashMap<>();

var mapNames1 = new HashMap<Integer, String>();

Voorbeeld

Het volgende programma toont het gebruik van lokale variabele type-inferentie in JAVA 10.

import java.util.List;

public class Tester {
   public static void main(String[] args) {
      var names = List.of("Julie", "Robert", "Chris", "Joseph"); 
      for (var name : names) {
         System.out.println(name);
      }
      System.out.println("");
      for (var i = 0; i < names.size(); i++) {
         System.out.println(names.get(i));
      }
   }
}

Uitvoer

Het zal de volgende uitvoer afdrukken.

Julie
Robert
Chris
Joseph

Julie
Robert
Chris
Joseph

Java

  1. Java-gegevenstypen (primitief)
  2. Java-operators
  3. Java-opmerkingen
  4. Java voor elke lus
  5. Java-strings
  6. Java-interface
  7. Java proberen-met-bronnen
  8. Java-annotaties
  9. Java Type Casting
  10. Statische variabele in Java:wat is statisch blok en methode [voorbeeld]
  11. Java - Basisgegevenstypen