0Pricing
Java Academy · Lektion

Einschränkungen von var

Wo var nicht verwendet werden kann

Einschränkungen von var ist eine kostenlose Java Academy-Lektion auf CoddyKit. Dies ist Lektion 4 von 4. Du kannst die komplette Lektion unten kostenlos lesen – dann übst du sie direkt im Browser mit einem integrierten Code-Editor und einem KI-Tutor rund um die Uhr. Sie ist Teil des Java Academy-Lernpfads, und dein Fortschritt wird über Web und CoddyKit-App synchronisiert. Der Java Academy-Kurs umfasst insgesamt 4 Lektionen.

var hat Regeln

var ist praktisch, aber eingeschränkt. Es funktioniert nur für lokale Variablen mit einem Initialisierungsausdruck. Wenn Sie wissen, wo es nicht verwendet werden kann, vermeiden Sie frustrierende Compilerfehler.

Nur für lokale Variablen

var ist nur für lokale Variablen erlaubt, also innerhalb von Methoden, Schleifen usw. Das folgende Beispiel ist gültig, weil die Variable lokal ist.

public class Main {
    public static void main(String[] args) {
        var greeting = "OK for locals";
        System.out.println(greeting);
    }
}

Nicht für Felder

Sie können var nicht für Klassenfelder verwenden. Felder müssen einen expliziten Typ deklarieren. count ist hier ein gewöhnliches Feld.

public class Main {
    static int count = 0;
    public static void main(String[] args) {
        count = 5;
        System.out.println(count);
    }
}

Nicht für Methodenparameter

Methodenparameter benötigen explizite Typen. var ist in einer Parameterliste nicht erlaubt, daher deklariert diese Methode direkt String name.

public class Main {
    static void greet(String name) {
        System.out.println("Hi " + name);
    }
    public static void main(String[] args) {
        greet("Lee");
    }
}

Nicht für Rückgabetypen

Der Rückgabetyp einer Methode kann nicht var sein, sondern muss explizit angegeben werden. Der Compiler leitet Rückgabetypen nicht ab.

public class Main {
    static int square(int x) {
        return x * x;
    }
    public static void main(String[] args) {
        System.out.println(square(6));
    }
}

Ein Initialisierungsausdruck ist erforderlich

Sie können var x; nicht ohne Wert schreiben. Ohne Initialisierungsausdruck hat der Compiler keine Grundlage für die Typableitung. Weisen Sie immer sofort einen Wert zu.

public class Main {
    public static void main(String[] args) {
        var ready = true;
        System.out.println(ready);
    }
}

Kein null-Initialisierungsausdruck

var x = null; schlägt fehl, weil null keinen spezifischen Typ hat. Verwenden Sie stattdessen einen typisierten Wert, zum Beispiel eine leere Zeichenkette.

public class Main {
    public static void main(String[] args) {
        var text = "";
        text = "now has a value";
        System.out.println(text);
    }
}

Keine verkürzte Array-Initialisierung

Sie können var nums = {1, 2, 3}; nicht schreiben. Die Schreibweise mit geschweiften Klammern benötigt einen deklarierten Arraytyp. Verwenden Sie stattdessen new int[]{...}.

public class Main {
    public static void main(String[] args) {
        var nums = new int[]{1, 2, 3};
        System.out.println(nums.length);
    }
}

Kein reserviertes Schlüsselwort

Interessanterweise ist var ein reservierter Typname und kein Schlüsselwort. Sie können eine Klasse trotzdem nicht var nennen, aber diese Regel ist eng gefasst. Behandeln Sie var in der Praxis wie jede moderne Syntax.

public class Main {
    public static void main(String[] args) {
        var var2 = "identifiers can contain var";
        System.out.println(var2);
    }
}

Keine Lambda ohne Zieltyp

Sie können eine untypisierte Lambda nicht var zuweisen, weil eine Lambda einen Zieltyp eines funktionalen Interfaces benötigt, aus dem der Typ abgeleitet werden kann. Deklarieren Sie den Interface-Typ explizit.

import java.util.function.IntUnaryOperator;

public class Main {
    public static void main(String[] args) {
        IntUnaryOperator doubler = x -> x * 2;
        System.out.println(doubler.applyAsInt(21));
    }
}

Zusammenfassung der Einschränkungen

Beachten Sie die Grenzen: nur lokale Variablen, Initialisierung erforderlich, kein null, keine untypisierte Lambda, keine Array-Schreibweise mit geschweiften Klammern und nicht für Felder, Parameter oder Rückgabetypen.

public class Main {
    public static void main(String[] args) {
        var ok = 42;
        System.out.println("var is for locals: " + ok);
    }
}

Kurzer Test

Welche der folgenden Verwendungen von var ist gültig?

Zusammenfassung

Sie haben die Einschränkungen von var kennengelernt:

  • Nur für lokale Variablen mit einem Initialisierungsausdruck erlaubt
  • Nicht für Felder, Parameter oder Rückgabetypen
  • Keine Typableitung aus null oder einer untypisierten Lambda möglich
  • Keine verkürzte Array-Schreibweise mit geschweiften Klammern
  • Es ist ein reservierter Typname und kein Schlüsselwort

Häufig gestellte Fragen

Ist die Lektion „Einschränkungen von var“ kostenlos?

Ja — der vollständige Text von „Einschränkungen von var“ ist hier im Web kostenlos zu lesen. Um sie interaktiv zu üben (integrierter Code-Editor und 24/7 KI-Tutor) und den Rest des Java Academy-Kurses freizuschalten, upgrade auf CoddyKit PRO. Der Java Academy-Kurs umfasst insgesamt 4 Lektionen.

Was lerne ich in „Einschränkungen von var“?

Wo var nicht verwendet werden kann Du übst Java Academy mit praktischem Code, den du direkt im Browser ausführst, und ein 24/7 KI-Tutor beantwortet deine Fragen während du die Lektion bearbeitest.

Brauche ich Erfahrung, um Java Academy zu starten?

Keine Vorkenntnisse erforderlich. Java Academy auf CoddyKit ist für Anfänger bis fortgeschrittene Lernende strukturiert, sodass du hier starten oder von Anfang an beginnen und in deinem eigenen Tempo voranschreiten kannst. Dies ist Lektion 4 von 4.

Wie lange dauert die Lektion „Einschränkungen von var“?

Die meisten CoddyKit-Lektionen dauern etwa 5–10 Minuten. Jede ist kompakt und interaktiv, sodass du stetig Fortschritte machst und genau dort weitermachst, wo du aufgehört hast – im Web und in der App.

Kann ich in dieser Java Academy-Lektion Code schreiben und ausführen?

Ja. Jede Java Academy-Lektion enthält einen integrierten Code-Editor, sodass du echten Code direkt in deinem Browser schreibst und ausführst und sofort KI-Feedback erhältst — ohne lokale Einrichtung erforderlich.

Alle Lektionen in diesem Kurs

  1. var für lokale Variablen verwenden
  2. Wann var die Lesbarkeit verbessert
  3. var in for-Schleifen
  4. Einschränkungen von var
← Zurück zu Java Academy