Metode toString Java
toString
metode di Java digunakan untuk memberikan informasi yang jelas dan memadai tentang suatu objek ( Object
) dalam bentuk yang dapat dibaca manusia. Penggantian metode yang tepat toString
dapat membantu dalam logging dan debugging program Java dengan memberikan informasi berharga dan penting. Karena toString()
ini didefinisikan dalam java.lang.Object
sebuah kelas dan implementasi defaultnya tidak memberikan banyak informasi, praktik terbaiknya adalah selalu mengganti metode ini di kelas turunannya. Faktanya, jika Anda membuat kelas penting atau umum bertipe Order
, Trade
atau Employee
, selalu ganti metode sama dengan , kode hash , bandingkanTo , dan toString
di Java. Secara default implementasi toString
menghasilkan output dalam bentuk , package.class@hashCode
misalnya untuk contoh kita metode kelas akan mencetak test.Country@18e2b22 di mana 18e2b22 adalah kode hash objek dalam heksadesimal, jika Anda memanggil metode hashCode maka akan mengembalikan 260943370 yang merupakan desimal setara dengan 18e2b22. Informasi ini tidak terlalu berguna saat mencari suatu masalah. Mari kita lihat contoh kehidupan nyata di mana Anda perlu menemukan masalah dalam koneksi jaringan Anda, jika Anda ingin mengetahui host dan port mana yang coba disambungkan oleh sistem Anda dan jika atau hanya mencetak informasi default, itu akan menjadi mustahil untuk membayangkan masalah sebenarnya, tetapi dengan implementasi yang ditimpa, mereka dapat memberikan informasi berguna seperti nama host dan nomor port. Dalam tutorial Java ini kami akan memberikan beberapa tips tentang metode overriding dengan contoh kode. toString()
toString()
Country
Socket
ServerSocket
toString
toString
toString
Cara mengganti metode toString di Java:
Mencetak tanggal yang diformat (yaitu hari/bulan/tahun) dan bukan nilai mentahnya. Ini adalah petunjuk yang sangat berguna ketika mengganti metode JavatoString
. toString()
Kelas reguler java.util.Date
tidak menampilkan tanggal yang diformat dan menyertakan banyak detail yang tidak selalu diperlukan. Jika Anda menggunakan sebagian DateFormat mis. dd-MM-yy di aplikasi Anda, maka Anda pasti ingin melihat format ini daripada format default. IDE biasanya tidak menghasilkan keluaran yang diformat Date
dan ini adalah sesuatu yang harus Anda lakukan sendiri, tetapi itu sepadan. Baca Cara Mencetak Tanggal dalam Format ddMMyy di Java untuk detail tentang format Date
di Java. Anda juga dapat menggunakan kelas SimpleDataFormat atau perpustakaan waktu Tanggal Joda untuk ini.
Mendokumentasikan format toString
Jika metode AndatoString()
tidak mengeluarkan data sebagai field=value, maka sebaiknya dokumentasikan format keluarannya toString
, terutama untuk objek penting seperti Karyawan atau Siswa. Misalnya, jika metode toString()
kelas Работник(Employee)
mencetak " John-101-Sales-9846387321 " maka praktik yang baik adalah menentukan format sebagai "nama-id-departemen-kontak", tetapi pada saat yang sama tidak mengizinkan klien untuk mendapatkan informasi dari metode toString()
, Anda harus selalu menyediakan metode yang sesuai untuk mengambil data, seperti getName()
,, getId()
dan getContact()
sebagainya, karena informasi yang diperoleh dari toString()
representasi objek rapuh dan rawan kesalahan, sehingga klien harus selalu memiliki jalur yang bersih untuk mendapatkan informasi.
Gunakan StringBuilder untuk menyusun keluaran toString()
Jika Anda menulis kode untuk suatu metodetoString()
di Java, gunakan StringBuilder untuk menambahkan atribut individual. Jika Anda menggunakan IDE seperti Eclipse , Netbeans atau IntelliJ maka menggunakan StringBuilder
metode and append()
alih-alih operator + untuk menulis toString
juga merupakan cara yang tepat. Secara default, Eclipse dan Netbeans dibuat toString
dengan operator penggabungan.
Menggunakan anotasi @Override
Menggunakan@Override
metode override di Java adalah salah satu praktik terbaik dalam bahasa tersebut. Namun petunjuk ini tidak sepenting dalam kasus penggantian metode equals()
dan compareTo()
, karena kelebihan beban alih-alih penggantian dapat menyebabkan kesalahan yang lebih halus dan sulit untuk dihitung. Bagaimanapun, lebih baik menggunakan anotasi @Overrride
.
Mencetak konten array alih-alih mencetak objek array
Array adalah objek di Java tetapi tidak mengesampingkan metodetoString
dan ketika Anda mencetak array, format output default tidak terlalu berguna karena kami ingin melihat konten array. Ngomong-ngomong, ini adalah alasan lain mengapa array char[] lebih disukai daripada String untuk menyimpan data sensitif seperti kata sandi. Luangkan waktu untuk melihat apakah mencetak konten array membantu klien Anda atau tidak, dan jika masuk akal, cetak konten array, bukan objek itu sendiri. Untuk alasan kinerja, lebih baik menggunakan HashSet atau Collection
itu untuk menyimpan objek lain. ArrayList
Array
Kiat bonus
Beberapa tip bonus lainnya tentang penggantian metodetoString
di Java.
-
Cetak keluaran
toString
dalam beberapa baris atau satu baris berdasarkan panjangnya. -
Sertakan nama kelas yang sepenuhnya memenuhi syarat dalam representasi
toString
, dengan kata lainpackage.class
untuk menghindari kesalahpahaman. -
Anda dapat melewatkan nilai nol atau menampilkannya, tetapi lebih baik menampilkannya. Terkadang berguna karena menunjukkan bidang mana yang ada
null
selama kejadian tertentu, misalnya NullPointerException . -
Gunakan format nilai kunci, misalnya
member.name=member.value
, sebagian besar IDE mendukung ini. -
Sertakan anggota yang diwarisi jika menurut Anda mereka harus memberikan informasi yang diperlukan kepada kelas yang mewarisi.
-
Terkadang sebuah objek berisi banyak parameter opsional dan wajib, seperti yang kami tunjukkan dalam contoh template Builder kami , ketika hampir tidak mungkin untuk mencetak semua bidang, dalam hal ini kami hanya dapat mencetak bidang yang diperlukan, terutama karena kami memiliki bidang opsional.
GO TO FULL VERSION