So beheben Sie den Fehler „int kann nicht dereferenziert werden“ in Java

Der „Primitive“ Und „nicht primitiv” entsprechen den beiden Datentypen in Java. Die letzteren Typen beinhalten die Referenzierung von Objekten und werden daher auch als „Referenztypen“. Dies ist jedoch bei den ersteren nicht der Fall und daher sind Anfänger-Programmierer normalerweise mit der Einschränkung „int kann nicht dereferenziert werden“ konfrontiert, da es sich um einen grundlegenden Fehler handelt.

In diesem Leitfaden werden die Szenarien veranschaulicht, in denen der Fehler „Int kann nicht dereferenziert werden“ auftritt, sowie die Methoden zur Behebung dieses Problems.

Was ist die Java-Einschränkung „int kann nicht dereferenziert werden“?

Der „int kann nicht dereferenziert werden„entspricht der Einschränkung in Java, die beim Aufrufen einer Methode für einen primitiven Datentyp auftritt. Der Aufruf der Methode kann durchgeführt werden, um eine ganzzahlige (primitive) Variable in einen String zu konvertieren oder sie mit anderen Variablen primitiver Typen usw. zu vergleichen. Da „int“ primitiv ist, kann es nicht dereferenziert werden, weshalb die Einschränkung auftritt .

Notiz: Der „Primitive„Datentypen umfassen „int“, „char“, „double“ usw. „String“, „Arrays“, „Integer“ usw. entsprechen jedoch dem „nicht primitiv“ Datentypen.

Wie behebe ich den Java-Fehler „int kann nicht dereferenziert werden“?

Dieser spezielle Fehler kann durch die Verwendung der unten aufgeführten Ansätze behoben/gelöst werden:

  • Anwendung des „gleich()„Methode mit“int“ Wert.
  • Anwendung des „vergleichen mit()” Methode mit „int“ Wert.
  • Anwendung des „toString()” Methode mit einem „int[ ]” Array.

Diese oben genannten Fehlerszenarien können jeweils mit den folgenden Lösungen behoben werden:

  • Ersetzen der Methode „equals()“ durch den Gleichheitsoperator „==“.
  • Verwendung der „Vergleichsoperator” Anstelle der „compareTo()-Methode.
  • Umwandlung von int in Integer unter Verwendung des „Integer.toString()” Methode oder Änderung von „int[ ]” zu „Ganzzahl[ ]“.

Aufgetretener Fehler, Fall 1: Anwenden der Methode „equals()“ mit dem Wert „int“.

Der „gleich()Die Methode vergleicht zwei Zeichenfolgen und gibt „true“ aus, wenn die Zeichenfolgen gleich sind.

Syntax

boolean equals(Object x)

Hier, „X„ ist ein Objekt, das auf die andere zu vergleichende Zeichenfolge verweist.

In diesem Fall lautet der Aufruf „gleich()”-Methode für den primitiven Datentyp „int“ liefert den besprochenen Fehler:

public class DereferencedError {
public static void main(String[] args) {
  int x = 45;
  System.out.println(x.equals(54));
}}

Initialisieren Sie gemäß diesen Codezeilen eine Ganzzahl und vergleichen Sie sie mit der Methode „equals()“ mit einer anderen Ganzzahl.

Ausgabe

Lösung: Ersetzen der Methode „equals()“ durch den Gleichheitsoperator „==“

Um den Fehler im obigen Fall zu beheben, ersetzen Sie einfach die angewandte Methode durch die Gleichheit „==”-Operator und speichern Sie es in einem „Boolescher WertGeben Sie eine Variable ein, um das Ergebnis entsprechend zu generieren (als boolescher Wert):

public class DereferencedError {
public static void main(String[] args) {
  int x = 45;
  Boolean y = (x == 54);
  System.out.println("The comparison becomes -> "+y);
}}

Ausgabe

Aufgetretener Fehler, Fall 2: Anwenden der Methode „compareTo()“ mit dem Wert „int“.

Der „vergleichen mit()Die Methode vergleicht die beiden bereitgestellten Zeichenfolgen. Die Einschränkung „int kann nicht dereferenziert werden“ kann auch beim Aufrufen einer Methode für „int nicht dereferenzierbar“ auftreten.int” Geben Sie ein, um die ganzen Zahlen zu vergleichen.

Syntax

compareTo(x)

In der obigen Syntax: „X„zeigt auf die Zeichenfolge, die mit der anderen Zeichenfolge verglichen werden soll.

Rückgabewerte

0: Wenn beide Zeichenfolgen gleich werden.

< 0: Wenn eine Zeichenfolge kleiner als die zugehörige Zeichenfolge ist.

> 0: wenn eine Zeichenfolge größer als die zugehörige Zeichenfolge ist.

Betrachten Sie nun das unten angegebene Szenario des aufgetretenen Fehlers:

public class DereferencedError {
public static void main(String[] args) {
  int x = 45;
  int y = 54;
  System.out.println(x.compareTo(y));
}}

Initialisieren Sie in diesem Code die bereitgestellten Ganzzahlen über „intGeben Sie Folgendes ein und wenden Sie es an:vergleichen mit()”-Methode zum Vergleich beider Ganzzahlen.

Ausgabe

Lösung: Verwenden Sie den Vergleichsoperator anstelle der Methode „compareTo()“.

Die Lösung für den Fehler in diesem Szenario kann darin bestehen, den Vergleichsoperator „<” anstelle der aufgerufenen Methode auf den besprochenen Datentyp zum Vergleich:

public class DereferencedError {
public static void main(String[] args) {
  int x = 45;
  int y = 54;
  boolean z = x < y;
  System.out.println("The comparison becomes -> "+z);
}}

Ausgabe

Aufgetretener Fehler Fall 3: Anwenden der „toString()“-Methode mit einem „int[ ]” Array

In diesem Szenario kann die dereferenzierte Einschränkung beim Zugriff auf „toString()”-Methode zum Konvertieren jedes Elements des Integer-Arrays in einen String:

public class DereferencedError {
public static void main(String args[]) {
  int[] intArray = {1, 2, 3};
  for(int i=0; i< intArray.length; i++){
  String result = intArray[i].toString();
  System.out.print(result+ " ");
}
}}

Initialisieren Sie basierend auf diesem Codeausschnitt ein Integer-Array über „int“ Typ. Wenden Sie nun das „für”-Schleife, um das Array zu iterieren und jedes ganzzahlige Element im Array über das angewendete „“ in einen String umzuwandeln.toString()“ Methode.

Der Einschränkung in dieser Situation kann mit den unten aufgeführten Ansätzen begegnet werden:

  • Casting/Änderung „int“ Zu „Ganze Zahl“.
  • Nutzung der „Integer.toString()“ Methode.
  • Ändern „int[ ]“ Zu „Ganze Zahl[ ]“.

Lösung 1: Umwandlung von int in Integer (nicht primitiv)

Wandeln Sie in diesem Fall „int“ in den nicht-primitiven Typ „ um.Ganze Zahl” um das entsprechende Ergebnis abzurufen, wie unten gezeigt:

Lösung 2: Anwenden der Methode „Integer.toString()“.

In einem anderen Fall kann diese spezielle Methode auch angewendet werden, um das String-Objekt der entsprechenden Ganzzahl abzurufen, indem stattdessen das Array als Argument der Methode enthalten wird:

Lösung 3: Int. ändern[ ] zu Ganzzahl[ ]

In diesem Szenario verwenden Sie „Ganze Zahl[ ]“ anstatt „int[ ]„kann die Einschränkung auch auflösen, da ersteres der nicht-primitive Typ ist:

Abschluss

Der „int kann nicht dereferenziert werden„entspricht der Einschränkung in Java, die beim Aufrufen einer Methode für einen primitiven Datentyp auftritt. Es kann durch die Verwendung eines Operators gelöst werden, anstatt eine Methode für die primitiven Datentypen aufzurufen. In diesem Artikel wurde eine detaillierte Anleitung zur Behebung der Dereferenzierungsbeschränkung in Java vorgestellt.

Kommentar verfassen

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

Nach oben scrollen