Industrielle Fertigung
Industrielles Internet der Dinge | Industrielle Materialien | Gerätewartung und Reparatur | Industrielle Programmierung |
home  MfgRobots >> Industrielle Fertigung >  >> Industrial programming >> Java

Java 10: Local Variable Type Inference (JEP 286) – var richtig einsetzen

Was ist Local Variable Type Inference?

Ab Java 10 können lokale Variablen mit var deklariert werden, ohne den Typ explizit anzugeben. Der Compiler leitet den Typ vom Initialisierungsausdruck ab. Dies gilt nur für lokale Variablen in Methoden, Initialisierungsblöcken, for-Schleifen, try-with-resources etc.

Vorher vs. Jetzt

// Expliziter Typ (alt)
String url = "https://example.com";
List<String> list = new ArrayList<>();
var url = "https://example.com";       // Typ: String
var list = new ArrayList<String>();    // Typ: ArrayList<String>
var map = new HashMap<Integer, String>(); // Typ: HashMap<Integer, String>

Wichtige Regeln & Einschränkungen

Beispiele

1. In for-Schleifen

var names = List.of("Anna", "Bernd", "Clara");
for (var name : names) {
    System.out.println(name);
}
for (var i = 0; i < names.size(); i++) {
    System.out.println(names.get(i));
}

2. try-with-resources

try (var in = new FileInputStream("data.txt");
     var reader = new BufferedReader(new InputStreamReader(in))) {
    // ...
}

3. Streams & Lambdas

var numbers = List.of(1, 2, 3, 4, 5);
var even = numbers.stream()
                  .filter(n -> n % 2 == 0)
                  .collect(Collectors.toList());
// even ist List<Integer>

Wann var verwenden – und wann nicht

✅ Gut geeignet ❌ Eher vermeiden
Komplexe Generics (Map<K, List<V>>) Primitive Typen (var i = 0 → int ist klarer)
Anonyme Klassen / Lambda-Ergebnisse Wenn Typ nicht offensichtlich ist (Lesbarkeit leidet)
Lokale Variablen in kurzem Scope Public API-Signaturen (Felder, Parameter, Returns)
try-with-resources-Variablen Wenn expliziter Typ Dokumentationswert hat

Fazit

var ist ein rein syntaktisches Zucker-Feature, das Code lesbarer machen kann, aber mit Bedacht eingesetzt werden sollte. Die Typinferenz erfolgt zur Compile-Zeit – zur Laufzeit ändert sich nichts.

Java

  1. Java Primitive Datentypen: Vollständiger Leitfaden mit Beispielen
  2. Java Operatoren meistern: Typen, Syntax und praktische Beispiele
  3. Java Kommentare: Typen, Verwendung und Best Practices
  4. Java Enhanced For-Schleife meistern: Syntax, Beispiele und Best Practices
  5. Java Strings meistern: Erstellung, Methoden und Best Practices
  6. Java-Schnittstellen meistern: Konzepte, Implementierung und Best Practices
  7. Java Try-With-Resources meistern: Automatisches Ressourcenmanagement erklärt
  8. Java Annotations erklärt: Typen, Platzierung und praktische Beispiele
  9. Java Type Casting meistern: Von Widening zu Narrowing und darüber hinaus
  10. Java static erklärt: Variablen, Methoden und Blöcke – Praxisbeispiele