Was bedeutet das Schlüsselwort var
und wie ist es
zu verwenden?v.10
Ab Java 10 sind Variablendeklarationen möglich, wie sie im
Quelltextbeispiel angegeben sind. Hierbei wird anstelle des
jeweiligen Datentyps das Schlüsselvor var
vorangestellt. Der Compiler ermittelt hierbei den
tatsächlichen Datentyp anhand des Kontextes.
Bei der Verwendung ist jedoch einiges zu beachten, das in der tabellarischen Übersicht unten
zusammengestellt ist.
public class VarClass { private var z = 'Z'; // Fehler private static final var F = 10; // Fehler public static void main(String[] args) { allowedVar(); var obj = (a, b) -> (a + b); // Fehler System.out.println(obj.add(2, 3)); // Fehler } private static void allowedVar() { var a; // Fehler var e = null; // Fehler var i = 87; var d = 3.14159; var f = Float.MAX_VALUE; var c = '@'; var s = "Ene mene mu"; var b = false; var r = new Rede(); System.out.println(i); System.out.println(d); System.out.println(f); System.out.println((double) f); System.out.println(c); System.out.println(s); System.out.println(b); r.rede(); } private static var gibVier() { // Fehler return 4; } private static void druckVier(var n) { // Fehler System.out.println(n); } } interface Inter { int add(int a, int b); } class Rede { void rede() { System.out.println("Hallo Welt!"); } }
lauffähig | nicht lauffähig |
---|---|
deklarierte und initialisierte lokale Variablen | mit null oder uninitialisierte lokale
Variablen
|
Instanz- und Klassenvariablen | |
Angabe in Lambda-Ausdrücken | |
Angabe in Methodensignaturen |
Im Quelltext sind die in der Tabelle genannten Fehlerquellen als
Kommentare ausgewiesen. Nach Auskommentieren der jeweiligen
Zeilen einschließlich der beiden Methoden gibVier()
und druckVier(var n)
liefert das Ausführen des
Quelltextes die folgende Ausgabe.
87 3.14159 3.4028235E38 3.4028234663852886E38 @ Ene mene mu false Hallo Welt!
In der dritten und vierten Zeile zeigt sich durch die unterschiedliche Ausgabe, dass zunächst korrekt ein float erkannt wurde, das dann in einen double-Wert gecastet wurde.
Wenn Ihnen javabeginners.de gefällt, freue ich mich über eine Spende an diese gemeinnützigen Organisationen.