HOWTO · Java
Java Char를 역참조할 수 없음
이 튜토리얼은 Java에서 Char Cannot be Dereferenced 오류를 해결하는 방법을 보여줍니다.
이 페이지의 내용
이 튜토리얼은 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