PHP memiliki fungsi var_dump () yang menampilkan konten internal suatu objek, menampilkan jenis dan konten objek.
Sebagai contoh:
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);
akan menampilkan:
object(Person)#1 (2) {
["firstName:private"]=>
string(3) "Jon"
["lastName:private"]=>
string(5) "Smith"
}
Apa yang setara di Jawa yang akan melakukan hal yang sama?
Jawaban:
Ini tidak cukup seperti dipanggang di Jawa, jadi Anda tidak mendapatkan ini secara gratis. Ini dilakukan dengan konvensi daripada konstruksi bahasa. Di semua kelas transfer data (dan mungkin bahkan di semua kelas yang Anda tulis ... ), Anda harus menerapkan yang masuk akal
toString
metode yang . Jadi di sini Anda perlu menimpatoString()
diPerson
kelas Anda dan mengembalikan negara yang diinginkan.Ada beberapa utilitas yang tersedia untuk membantu menulis metode toString yang baik, atau sebagian besar IDE memiliki
toString()
pintasan penulisan otomatis .sumber
Dalam pengalaman saya, var_dump biasanya digunakan untuk debugging PHP di tempat debugger langkah-meskipun. Di Jawa, tentu saja Anda dapat menggunakan debugger IDE Anda untuk melihat representasi visual dari konten suatu objek.
sumber
Alternatif Anda adalah mengesampingkan
toString()
metode objek Anda untuk menampilkan kontennya dengan cara yang Anda sukai, atau menggunakan refleksi untuk memeriksa objek (dengan cara yang mirip dengan apa yang dilakukan oleh para penentang).Keuntungan menggunakan refleksi adalah bahwa Anda tidak perlu memodifikasi objek individual Anda untuk menjadi "analysable", tetapi ada kompleksitas tambahan dan jika Anda memerlukan dukungan objek bersarang Anda harus menulis itu.
Kode ini akan mencantumkan bidang dan nilainya untuk
Object
"o"sumber
Saya pikir cara terbaik untuk melakukannya adalah menggunakan google-gson (Pustaka Java untuk mengonversi JSON menjadi objek Java dan sebaliknya)
Unduh , tambahkan file "jar" ke proyek Anda
Keluaran:
Anda dapat mengonversi objek apa pun (array, daftar, dan lain-lain) menjadi JSON. Saya pikir, itu adalah analog terbaik dari PHP var_dump ()
sumber
Paket lang apache commons menyediakan kelas yang dapat digunakan untuk membangun metode toString () default menggunakan refleksi untuk mendapatkan nilai-nilai bidang. Lihat saja ini .
sumber
Saya menggunakan Jestr dengan hasil yang masuk akal.
sumber
Saya suka menggunakan GSON karena seringkali sudah menjadi ketergantungan dari jenis proyek yang saya kerjakan:
Atau gantikan GSON untuk perpustakaan JSON lain yang Anda gunakan.
sumber
Saya menemukan metode ini untuk membuang objek, coba dump String ini (objek Object)
sumber
Anda XMLisasi serialisasi, dan Anda harus mendapatkan representasi yang sangat rapi bahkan dari objek yang sangat bersarang.
sumber
Saya pikir hal serupa yang dapat Anda lakukan adalah membuat metode sederhana yang mencetak objek yang ingin Anda lihat. Sesuatu seperti ini:
Ini tidak sama seperti var_dump (), tetapi Anda bisa mendapatkan gambaran umum tentang itu, tanpa harus pergi ke IDE debugger Anda.
sumber
Hanya untuk addup pada solusi Field (setAccessible) sehingga Anda dapat mengakses variabel pribadi dari suatu objek:
sumber