Java Char를 역참조할 수 없음

Sheeraz Gul 2023년10월12일
Java Char를 역참조할 수 없음

이 튜토리얼은 Java의 java char cannot be dereferenced 오류를 해결하는 방법을 보여줍니다.

Java Char를 역참조할 수 없음

java char cannot be dereferenced 오류는 equals() 메서드를 사용하여 문자가 다른 문자와 같은지 확인하려고 할 때 발생합니다. Java에서 참조는 변수 또는 개체에 대한 주소이며 역참조는 해당 참조를 통해 변수 또는 개체의 기능에 액세스하는 것을 의미합니다.

Char는 기본 유형 변수이며 기본 유형을 역참조하면 char는 역참조할 수 없습니다 또는 기본 유형 char에서 메서드를 호출할 수 없습니다 오류가 발생합니다. 이 오류는 프리미티브가 개체가 아닌 원시 값으로 간주되기 때문에 발생합니다.

다음은 동일한 오류가 발생하는 예입니다.

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);
  }
}

위의 코드는 여러 char cannot be dereferenced 오류를 발생시킵니다. 출력 참조:

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

이 오류에 대한 해결책은 equals() 메서드 대신 == 연산자를 사용하는 것입니다. 솔루션 보기:

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);
  }
}

이제 char cannot be dereferenced 오류가 코드에서 해결되었습니다. 출력 참조:

Enter Your String0000000000
Enter Your String

Please input a valid 10 digit phone number

Enter Your String
작가: Sheeraz Gul
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

관련 문장 - Java Error