Java 10 Feature Spotlight: Local Variable Type Inference (var) onder de knie
JEP 286 – Local Variable Type Inference
Local Variable Type Inference is een van de meest opvallende taalkundige wijzigingen vanaf Java 10. Het stelt u in staat een variabele te declareren met var zonder expliciet het type op te geven. De compiler deduceert het type aan de hand van de toegewezen waarde. Deze type-inferentie is beperkt tot lokale variabelen.
Oude manier van declareren
String name = "Welkom op tutorialspoint.com";
Nieuwe manier met var
var name = "Welkom op tutorialspoint.com";
De compiler deduceert nu het type van name als String door de waarde te inspecteren.
Belangrijke punten
- Geen type-inferentie voor lidvariabelen, methodeparameters of return-waarden.
- Lokale variabele moet bij declaratie geïnitialiseerd worden, anders kan de compiler het type niet afleiden en geeft een fout.
- Type-inferentie werkt ook in de initialisatieblok van lussen.
- Geen runtime-overhead: de compiler bepaalt het type op basis van de waarde, geen prestatieverlies.
- Geen dynamische typewijziging: eenmaal afgeleid, kan het type niet veranderen.
- Complexe boilerplate-code kan worden verminderd.
Vergelijking:
Map<Integer, String> mapNames = new HashMap<>(); var mapNames1 = new HashMap<Integer, String>();
Voorbeeld
Programma dat Local Variable Type Inference demonstreert:
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
Julie Robert Chris Joseph Julie Robert Chris Joseph
Java
- Java primitieve datatypes: complete gids met voorbeelden
- Java-operators beheersen: typen, syntax en praktische voorbeelden
- Java-commentaar: typen, gebruik en best practices
- Java Enhanced For-lus beheersen: syntax, voorbeelden en best practices
- Java Strings beheersen: aanmaken, methodes en best practices
- Java interfaces meesteren: concepten, implementatie en best practices
- Java Try-with-resources meesteren: automatische resource management uitgelegd
- Java Annotaties uitgelegd: typen, plaatsing en praktische voorbeelden
- Java Type Casting: Van widening tot narrowing en verder
- Java Static Uitgelegd: Variabelen, Methodes en Blokken – Praktische Voorbeelden
- Java Primitieve Datatypes: Duidelijke Gids