PHP verfügt über eine var_dump () - Funktion, die den internen Inhalt eines Objekts ausgibt und den Typ und Inhalt eines Objekts anzeigt .
Beispielsweise:
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);
wird ausgegeben:
object(Person)#1 (2) {
["firstName:private"]=>
string(3) "Jon"
["lastName:private"]=>
string(5) "Smith"
}
Was ist das Äquivalent in Java, das dasselbe tut?
Antworten:
Es ist in Java nicht ganz so integriert, daher erhalten Sie es nicht kostenlos. Es wird eher mit Konventionen als mit Sprachkonstrukten gemacht. In allen Datenübertragungsklassen (und möglicherweise sogar in allen Klassen, die Sie schreiben ... ) sollten Sie eine sinnvolle
toString
Methode implementieren . Hier müssen Sie alsotoString()
IhrePerson
Klasse überschreiben und den gewünschten Status zurückgeben.Es gibt Dienstprogramme , die beim Schreiben einer guten toString-Methode helfen, oder die meisten IDEs verfügen über eine automatische
toString()
Schreibverknüpfung.quelle
Nach meiner Erfahrung wird var_dump normalerweise zum Debuggen von PHP anstelle eines schrittweisen Debuggers verwendet. In Java können Sie natürlich den Debugger Ihrer IDE verwenden, um eine visuelle Darstellung des Inhalts eines Objekts anzuzeigen.
quelle
Sie können die
toString()
Methode Ihres Objekts überschreiben, um den Inhalt auf eine von Ihnen gewünschte Weise auszugeben, oder das Objekt mithilfe von Reflektion untersuchen (ähnlich wie bei Debuggern).Der Vorteil der Verwendung von Reflection besteht darin, dass Sie Ihre einzelnen Objekte nicht so ändern müssen, dass sie "analysierbar" sind. Dies erhöht jedoch die Komplexität. Wenn Sie Unterstützung für verschachtelte Objekte benötigen, müssen Sie diese schreiben.
Dieser Code listet die Felder und ihre Werte für ein
Object
"o" auf.quelle
Ich denke, dass der beste Weg, dies zu tun, die Verwendung von Google-Gson ist (eine Java-Bibliothek zum Konvertieren von JSON in Java-Objekte und umgekehrt).
Laden Sie es herunter und fügen Sie Ihrem Projekt die Datei "jar" hinzu
Ausgabe:
Sie können jedes Objekt (Arrays, Listen usw.) in JSON konvertieren. Ich denke, dass es das beste Analogon von PHPs var_dump () ist.
quelle
Das Paket apache commons lang bietet eine solche Klasse, mit der eine Standardmethode toString () mithilfe von Reflection erstellt werden kann, um die Werte von Feldern abzurufen. Werfen Sie einen Blick auf diese .
quelle
Ich benutze Jestr mit vernünftigen Ergebnissen.
quelle
Ich benutze GSON gerne, weil es oft schon von der Art der Projekte abhängt, an denen ich arbeite:
Oder ersetzen Sie jede andere von Ihnen verwendete JSON-Bibliothek durch GSON.
quelle
Ich habe diese Methode gefunden, um ein Objekt zu sichern. Versuchen Sie es mit diesem String-Speicherauszug (Objektobjekt).
quelle
Sie XML-Serialisierung, und Sie sollten eine sehr übersichtliche Darstellung auch tief verschachtelter Objekte erhalten.
quelle
Ich denke, etwas Ähnliches könnten Sie tun, um eine einfache Methode zu erstellen, die das Objekt druckt, das Sie sehen möchten. Etwas wie das:
Es ist nicht dasselbe wie var_dump (), aber Sie können sich einen allgemeinen Überblick darüber verschaffen, ohne zu Ihrer Debugger-IDE wechseln zu müssen.
quelle
Nur um die Field-Lösung (setAccessible) zu addieren, damit Sie auf die private Variable eines Objekts zugreifen können:
quelle