JavaRush /Java Blog /Random-ID /10 Tips Mengganti Metode toString() di Java (Bagian 1)
Ku6ep
Level 35

10 Tips Mengganti Metode toString() di Java (Bagian 1)

Dipublikasikan di grup Random-ID
10 Tips untuk Mengganti Metode toString() di Java - ToStringBuilder Netbeans Eclipse 10 Tips Mengganti Metode toString() di Java (Bagian 1) - 1

Metode toString Java

toStringmetode di Java digunakan untuk memberikan informasi yang jelas dan memadai tentang suatu objek ( Object) dalam bentuk yang dapat dibaca manusia. Penggantian metode yang tepat toStringdapat membantu dalam logging dan debugging program Java dengan memberikan informasi berharga dan penting. Karena toString()ini didefinisikan dalam java.lang.Objectsebuah 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, Tradeatau Employee, selalu ganti metode sama dengan , kode hash , bandingkanTo , dan toStringdi Java. Secara default implementasi toStringmenghasilkan output dalam bentuk , package.class@hashCodemisalnya 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()CountrySocketServerSockettoStringtoStringtoString

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 Java toString. toString()Kelas reguler java.util.Datetidak 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 Datedan ini adalah sesuatu yang harus Anda lakukan sendiri, tetapi itu sepadan. Baca Cara Mencetak Tanggal dalam Format ddMMyy di Java untuk detail tentang format Datedi Java. Anda juga dapat menggunakan kelas SimpleDataFormat atau perpustakaan waktu Tanggal Joda untuk ini.

Mendokumentasikan format toString

Jika metode Anda toString()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 metode toString()di Java, gunakan StringBuilder untuk menambahkan atribut individual. Jika Anda menggunakan IDE seperti Eclipse , Netbeans atau IntelliJ maka menggunakan StringBuildermetode and append()alih-alih operator + untuk menulis toStringjuga merupakan cara yang tepat. Secara default, Eclipse dan Netbeans dibuat toStringdengan operator penggabungan.

Menggunakan anotasi @Override

Menggunakan @Overridemetode 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 metode toStringdan 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 Collectionitu untuk menyimpan objek lain. ArrayListArray

Kiat bonus

Beberapa tip bonus lainnya tentang penggantian metode toStringdi Java.
  1. Cetak keluaran toStringdalam beberapa baris atau satu baris berdasarkan panjangnya.

  2. Sertakan nama kelas yang sepenuhnya memenuhi syarat dalam representasi toString, dengan kata lain package.classuntuk menghindari kesalahpahaman.

  3. Anda dapat melewatkan nilai nol atau menampilkannya, tetapi lebih baik menampilkannya. Terkadang berguna karena menunjukkan bidang mana yang ada nullselama kejadian tertentu, misalnya NullPointerException .

  4. Gunakan format nilai kunci, misalnya member.name=member.value, sebagian besar IDE mendukung ini.

  5. Sertakan anggota yang diwarisi jika menurut Anda mereka harus memberikan informasi yang diperlukan kepada kelas yang mewarisi.

  6. 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.

Komentar
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION