Análisis de varios métodos comunes para convertir objetos java en cadenas java
Método 1: Utilice el método Object#toString()
Vea el siguiente ejemplo:
Object object = getObject();
System.out.PRintln(object.toString()); Nota 1
En este uso, dado que ya existe un método público .toString() en la clase java.lang.Object, puede ser utilizado en cualquier Este método se llama estrictamente en un objeto Java. Sin embargo, cuando utilice el foco, debe asegurarse de que el objeto no sea nulo; de lo contrario, se generará una excepción NullPointerException. Cuando se utiliza este método, las clases derivadas normalmente anulan el método toString() en Object.
Método 2: utilizar el método de objeto de conversión de tipo (String)
Esta es una conversión de tipo estándar que convierte un objeto en un valor de tipo String. Una cosa a tener en cuenta al utilizar este método es que el tipo debe poder convertirse al tipo String. Por lo tanto, es mejor usar instancia de verificación de tipos para determinar si la conversión es posible. De lo contrario, es fácil generar una excepción CalssCastException. Además, tenga mucho cuidado porque la verificación de sintaxis no informará un error al convertir un objeto definido por el tipo de objeto en una cadena, lo que generará posibles errores. Tenga mucho cuidado en esta situación. Por ejemplo:
Object obj = new Integer(100);
String strVal = (String)obj
Se producirá un error en tiempo de ejecución porque el Integer; type La conversión a tipo String no se aprobará. Sin embargo,
Integer obj = new Integer(100);
String strVal = (String)obj;
Si es un código de formato, un error de sintaxis será informado.
Además, (String)null también es legal ya que los valores nulos se pueden convertir a cualquier tipo de clase java.
Método 3: Usar String.valueOf(Object)
String.valueOf(Object) se basa en Object#toString(). Pero no es lo mismo que Object#toString(). Como se mencionó anteriormente al analizar el método 1, se debe garantizar que este último no sea nulo, pero con el tercer método, no tiene que preocuparse por si el objeto es nulo. Para facilitar la explicación del problema, analicemos el código fuente relevante. Jdk String# valueOf (Objeto) El código fuente es el siguiente: /**** Devuelve la representación de cadena del parámetro Objeto.
** @param obj an Object.
* @devuelve la representación de cadena del argumento Object.** @param obj an Object.p>
* @return si el argumento es vacío, luego devuelve una cadena igual a
* "null "; de lo contrario, devuelve
* el valor de obj.toString().
* @ Ver java.lang.Object#toString()*/public static String valueOf(Object obj) {
return (obj == null) ?"null" : obj .toString();} Del código fuente anterior, podemos ver claramente por qué los valores nulos no son nada de qué preocuparse. Sin embargo, también nos proporciona las trampas adecuadas. Debemos prestar atención al hecho de que cuando el objeto está vacío, el valor de String.valueOf (objeto) es la cadena "nula", ¡no nula! Recuerde prestar atención a esto durante el uso. Imagínese lo que sucedería si usáramos una declaración como if(String.valueOf(object)==null){System.out.println("¡El valor pasado es nulo!");}. Piense nuevamente en la diferencia visual en los resultados de ejecución de las siguientes declaraciones cuando se envían a la consola:
System.out.println(String.valueOf((Object)null Note 2)); p> p>
System.out.println((Object)null ); Nota 2
Nota 1: Solo para el uso de System.out.println, reemplace la declaración System.out.println (objeto .toString()); reemplazado por System.out.println(objeto); Este uso aquí es principalmente para ilustrar el uso de Object#toString().