PHP a une fonction var_dump () qui produit le contenu interne d'un objet, montrant le type et le contenu d'un objet.
Par exemple:
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);
affichera:
object(Person)#1 (2) {
["firstName:private"]=>
string(3) "Jon"
["lastName:private"]=>
string(5) "Smith"
}
Quel est l'équivalent en Java qui fera de même?
Réponses:
Ce n'est pas tout à fait aussi intégré en Java, donc vous ne l'obtenez pas gratuitement. Cela se fait avec des conventions plutôt qu'avec des constructions de langage. Dans toutes les classes de transfert de données (et peut-être même dans toutes les classes que vous écrivez ... ), vous devez implémenter une
toString
méthode sensible . Donc, ici, vous devez remplacertoString()
dans votrePerson
classe et retourner l'état souhaité.Il existe des utilitaires disponibles qui aident à écrire une bonne méthode toString, ou la plupart des IDE ont un
toString()
raccourci d'écriture automatique .la source
D'après mon expérience, var_dump est généralement utilisé pour déboguer PHP à la place d'un débogueur pas à pas. En Java, vous pouvez bien sûr utiliser le débogueur de votre IDE pour voir une représentation visuelle du contenu d'un objet.
la source
Vos alternatives sont de remplacer la
toString()
méthode de votre objet pour afficher son contenu d'une manière que vous aimez, ou d'utiliser la réflexion pour inspecter l'objet (d'une manière similaire à ce que font les débogueurs).L'avantage d'utiliser la réflexion est que vous n'aurez pas besoin de modifier vos objets individuels pour qu'ils soient "analysables", mais il y a une complexité supplémentaire et si vous avez besoin de la prise en charge d'objets imbriqués, vous devrez l'écrire.
Ce code listera les champs et leurs valeurs pour un
Object
"o"la source
Je pense que la meilleure façon de le faire est d'utiliser google-gson (une bibliothèque Java pour convertir JSON en objets Java et vice-versa)
Téléchargez-le , ajoutez le fichier "jar" à votre projet
Production:
Vous pouvez convertir n'importe quel objet (tableaux, listes, etc.) en JSON. Je pense que c'est le meilleur analogue de var_dump () de PHP
la source
Le package lang apache commons fournit une telle classe qui peut être utilisée pour construire une méthode toString () par défaut en utilisant la réflexion pour obtenir les valeurs des champs. Jetez un œil à ceci .
la source
J'utilise Jestr avec des résultats raisonnables.
la source
J'aime utiliser GSON car c'est souvent déjà une dépendance du type de projets sur lesquels je travaille:
Ou remplacez GSON par toute autre bibliothèque JSON que vous utilisez.
la source
J'ai trouvé cette méthode pour vider l'objet, essayez ce vidage String (objet objet)
la source
Vous sérialisation XML, et vous devriez obtenir une représentation très soignée même des objets profondément imbriqués.
la source
Je pense que quelque chose de similaire que vous pourriez faire est de créer une méthode simple qui imprime l'objet que vous voulez voir. Quelque chose comme ça:
Ce n'est pas la même chose que var_dump (), mais vous pouvez en avoir une idée générale, sans avoir besoin d'aller dans votre IDE de débogage.
la source
Juste pour ajouter sur la solution Field (le setAccessible) afin que vous puissiez accéder à la variable privée d'un objet:
la source