Java Char no se puede desreferenciar
Este tutorial demuestra cómo resolver el error de Java java char no se puede desreferenciar
.
Java Char no se puede desreferenciar
El error java char no se puede desreferenciar
se produce cuando intentamos utilizar el método equals()
para comprobar que un carácter es igual a otro. En Java, la referencia es una dirección a una variable u objeto, y la desreferenciación significa acceder a las características de una variable u objeto a través de esa referencia.
Char es una variable de tipo primitivo, y desreferenciar un tipo primitivo generará el error “char no se puede desreferenciar” o “no se puede invocar un método en el tipo primitivo char”. Este error ocurre porque la primitiva se considera valores sin procesar en lugar de objetos.
Aquí hay un ejemplo que arroja el mismo error:
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);
}
}
El código anterior arrojará múltiples errores de char no se puede desreferenciar
. Ver salida:
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
La solución a este error es utilizar el operador ==
en lugar del método equals()
. Ver la solución:
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);
}
}
Ahora se soluciona en el código el error char no se puede desreferenciar
. Ver salida:
Enter Your String0000000000
Enter Your String
Please input a valid 10 digit phone number
Enter Your String
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 FacebookArtículo relacionado - Java Error
- Arreglar Java fue iniciado por el código de salida devuelto = 1
- Arreglar JAVA_HOME no se puede determinar a partir del error de registro en R
- Arreglar java.io.IOException: No queda espacio en el dispositivo en Java
- Arreglar Java.IO.NotSerializableException en Java
- Arreglar Java.Lang.IllegalStateException de Android: no se pudo ejecutar el método de la actividad
- Arreglar Java.Lang.NoClassDefFoundError: No se pudo inicializar el error de clase