HOWTO · Java

Beheben Sie den Fehler `Int kann nicht dereferenziert werden` in Java

In diesem Artikel gehen wir auf die Ursache der Ausnahme Java int kann nicht dereferenziert werden und wie sie behoben werden kann.

Auf dieser Seite

In diesem Artikel besprechen wir die Ursache der Java-Ausnahme int kann nicht dereferenziert werden und wie sie behoben werden kann. Sehen Sie sich zunächst an, was Dereferenzierung in Java ist.

Dereferenzierung in Java

Primitive und Objektvariablen sind die zwei Arten von Variablen, die in Java verwendet werden können. Referenztypen können jedoch nur Objektvariablen sein. Der int-Datentyp ist eher ein Primitiv als ein Objekt.

Der Zugriff auf den Wert, auf den durch eine Referenz verwiesen wird, wird als Dereferenzierung bezeichnet. Es ist unmöglich, int zu dereferenzieren, da es sich bereits um einen Wert und nicht um einen Verweis auf etwas anderes handelt.

Ursache für int kann nicht dereferenziert werden in Java

  1. Eine Referenz in Java ist eine Adresse, die auf ein bestimmtes Objekt oder eine Variable zeigt. Der Begriff Dereferenzierung bezieht sich auf das Abrufen der Eigenschaften eines Objekts durch eine Referenz.
  2. Wenn Sie versuchen, eine Dereferenzierung auf einem Primitiv durchzuführen, wie im folgenden Beispiel, erhalten Sie den Fehler Z kann nicht dereferenziert werden, wobei Z ein Typ ist, der als primitiv gilt.
  3. Der Grund dafür ist, dass Primitive nicht dasselbe sind wie Objekte; stattdessen sind sie Rohwertdarstellungen.

Beheben Sie den Fehler int kann nicht dereferenziert werden in Java

Lassen Sie uns verstehen, int kann nicht dereferenziert werden und finden Sie heraus, wie Sie es mit Hilfe des folgenden Beispiels beheben können:

Beispiel:

public class Main {
  public static void main(String[] args) {
    int Z = 8;
    System.out.println(Z.equals(8));
  }
}

Zuerst haben wir die Klasse Main erstellt und ein int mit einem zufällig gewählten Wert verglichen. Z ist einer der acht grundlegenden Datentypen von Java, darunter int, byte, short usw.

Wir sehen den folgenden Fehler, wenn wir versuchen, den Code zu kompilieren:

Main.java:5: error: int cannot be dereferenced
System.out.println(Z.equals(8));
                    ^
1 error

In unserem Fall müssen wir feststellen, ob die beiden Werte gleich sind oder nicht. Die Lösung unseres Problems besteht darin, die Notation == anstelle der Funktion equals() für primitive Typen zu verwenden:

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

Die folgende Ausgabe wird gedruckt, wenn wir den Code kompilieren:

true