Java Char kann nicht dereferenziert werden

Sheeraz Gul 12 Oktober 2023
Java Char kann nicht dereferenziert werden

Dieses Tutorial zeigt, wie Sie den Java-Fehler Java-Zeichen können nicht dereferenziert werden beheben.

Java Char kann nicht dereferenziert werden

Der Fehler Java-Zeichen kann nicht dereferenziert werden tritt auf, wenn wir versuchen, die Methode equals() zu verwenden, um zu überprüfen, ob ein Zeichen mit einem anderen gleich ist. In Java ist eine Referenz eine Adresse zu einer Variablen oder einem Objekt, und die Dereferenzierung bedeutet, über diese Referenz auf die Funktionen einer Variablen oder eines Objekts zuzugreifen.

Char ist eine Variable vom primitiven Typ, und das Dereferenzieren eines primitiven Typs wird den Fehler char kann nicht dereferenziert werden oder cannot invoke a method on primitive type char ausgeben. Dieser Fehler tritt auf, weil das Primitiv als Rohwerte und nicht als Objekte betrachtet wird.

Hier ist ein Beispiel, das denselben Fehler auslöst:

package delftstack;

import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.util.*;

public class Example {
  public static void main(String args[]) {
    do {
      BufferedReader Buffered_Reader = new BufferedReader(new InputStreamReader(System.in));
      System.out.print("Enter Your String");
      String DemoString = Buffered_Reader.readLine();

      if (DemoString.length() < 10) {
        System.out.println("");
        System.out.println("Please input a valid 10 digit phone number");
        System.out.println("");
      } else {
        if (DemoString.charAt(3).equals('-') && DemoString.charAt(7).equals('-')) {
          System.out.println("2 Hyphens at 3 and 7");
        } else if (DemoString.charAt(3).equals('-') && DemoString.charAt(8).equals('-')) {
          System.out.println("2 Hyphens at 3 and 8");
        } else if (DemoString.charAt(3).equals('-') && DemoString.charAt(9).equals('-')) {
          System.out.println("2 Hyphens at 3 and 9");
        }
      }
    } while (1 < 2);
  }
}

Der obige Code löst mehrere char kann nicht dereferenziert werden-Fehler aus. Siehe Ausgabe:

Example.java:19: error: char cannot be dereferenced
                if (DemoString.charAt(3).equals('-') && DemoString.charAt(7).equals('-')) {
                                        ^
Example.java:19: error: char cannot be dereferenced
                if (DemoString.charAt(3).equals('-') && DemoString.charAt(7).equals('-')) {
                                                                            ^
Example.java:21: error: char cannot be dereferenced
                } else if (DemoString.charAt(3).equals('-')
                                               ^
Example.java:22: error: char cannot be dereferenced
                        && DemoString.charAt(8).equals('-')) {
                                               ^
Example.java:24: error: char cannot be dereferenced
                } else if (DemoString.charAt(3).equals('-')
                                               ^
Example.java:25: error: char cannot be dereferenced
                        && DemoString.charAt(9).equals('-')) {
                                               ^
6 errors
error: compilation failed

Die Lösung für diesen Fehler ist die Verwendung des Operators == anstelle der Methode equals(). Siehe die Lösung:

package delftstack;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.*;

public class Example {
  public static void main(String args[]) throws IOException {
    do {
      BufferedReader Buffered_Reader = new BufferedReader(new InputStreamReader(System.in));
      System.out.print("Enter Your String");
      String DemoString = Buffered_Reader.readLine();

      if (DemoString.length() < 10) {
        System.out.println("");
        System.out.println("Please input a valid 10 digit phone number");
        System.out.println("");
      } else {
        if (DemoString.charAt(3) == '-' && DemoString.charAt(7) == '-') {
          System.out.println("2 Hyphens at 3 and 7");
        } else if (DemoString.charAt(3) == '-' && DemoString.charAt(8) == '-') {
          System.out.println("2 Hyphens at 3 and 8");
        } else if (DemoString.charAt(3) == '-' && DemoString.charAt(9) == '-') {
          System.out.println("2 Hyphens at 3 and 9");
        }
      }

    } while (1 < 2);
  }
}

Nun ist der Fehler char not be dereferenced im Code behoben. Siehe Ausgabe:

Enter Your String0000000000
Enter Your String

Please input a valid 10 digit phone number

Enter Your String
Sheeraz Gul avatar Sheeraz Gul avatar

Sheeraz is a Doctorate fellow in Computer Science at Northwestern Polytechnical University, Xian, China. He has 7 years of Software Development experience in AI, Web, Database, and Desktop technologies. He writes tutorials in Java, PHP, Python, GoLang, R, etc., to help beginners learn the field of Computer Science.

LinkedIn Facebook

Verwandter Artikel - Java Error