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.
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657public 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.
1234567887
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.