PHP tiene una función var_dump () que genera el contenido interno de un objeto, mostrando el tipo y contenido de un objeto.
Por ejemplo:
class Person {
private $firstName;
private $lastName;
public function __construct($firstName, $lastName) {
$this->firstName = $firstName;
$this->lastName = $lastName;
}
}
$person = new Person('Jon', 'Smith');
var_dump($person);
dará salida:
object(Person)#1 (2) {
["firstName:private"]=>
string(3) "Jon"
["lastName:private"]=>
string(5) "Smith"
}
¿Cuál es el equivalente en Java que hará lo mismo?
Respuestas:
No está tan integrado en Java, por lo que no obtienes esto de forma gratuita. Se hace con convenciones en lugar de construcciones de lenguaje. En todas las clases de transferencia de datos (y tal vez incluso en todas las clases que escriba ... ), debe implementar un
toString
método razonable . Entonces, aquí debe anulartoString()
en suPerson
clase y devolver el estado deseado.Hay utilidades disponibles que ayudan a escribir un buen método toString, o la mayoría de los IDE tienen un
toString()
acceso directo de escritura automática .fuente
En mi experiencia, var_dump se usa típicamente para depurar PHP en lugar de un depurador paso a paso. En Java, por supuesto, puede usar el depurador de su IDE para ver una representación visual del contenido de un objeto.
fuente
Sus alternativas son anular el
toString()
método de su objeto para generar su contenido de la manera que desee, o usar la reflexión para inspeccionar el objeto (de manera similar a lo que hacen los depuradores).La ventaja de usar la reflexión es que no necesitará modificar sus objetos individuales para que sean "analizables", pero hay una complejidad adicional y si necesita soporte de objetos anidados, tendrá que escribir eso.
Este código enumerará los campos y sus valores para una
Object
"o"fuente
Creo que la mejor manera de hacerlo es usar google-gson (una biblioteca de Java para convertir JSON en objetos de Java y viceversa)
Descárguelo , agregue el archivo "jar" a su proyecto
Salida:
Puede convertir cualquier objeto (matrices, listas, etc.) a JSON. Creo que es el mejor análogo de var_dump () de PHP
fuente
El paquete lang de apache commons proporciona una clase de este tipo que se puede utilizar para construir un método toString () predeterminado mediante la reflexión para obtener los valores de los campos. Solo mira esto .
fuente
Yo uso Jestr con resultados razonables.
fuente
Me gusta usar GSON porque a menudo ya depende del tipo de proyectos en los que estoy trabajando:
O sustituya GSON por cualquier otra biblioteca JSON que use.
fuente
Encontré este método para volcar objetos, intente este volcado de cadena (objeto Object)
fuente
Usted serializa XML, y debe obtener una representación muy clara incluso de objetos profundamente anidados.
fuente
Creo que algo similar que podría hacer es crear un método simple que imprima el objeto que desea ver. Algo como esto:
No es lo mismo que var_dump (), pero puede tener una idea general de ello, sin la necesidad de ir a su IDE de depurador.
fuente
Solo para agregar la solución Field (setAccessible) para que pueda acceder a la variable privada de un objeto:
fuente