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

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

Dipublikasikan di grup Random-ID

contoh toString di Java

Kami akan menggunakan kelas berikut untuk mendemonstrasikan contoh toString kami untuk Netbeans, Eclipse dan utilitas ToStringBuilder Apache.

/** * Java программа, демонстрирующая How переопределить метод toString() в Java. * Эта Java программа показывает How вы можете использовать IDE типа Netbeans or Eclipse * и открытую библиотеку типа Apache commons ToStringBuilder для * переопределения toString в Java. * @author Javarevisited.blogspot.com */ public class Country { private String name; private String capital; private long population; private Date independenceDay; public Country(String name){ this.name = name; } public String getName(){ return name; } public void setName(String name) {this.name = name;} public String getCapital() {return capital;} public void setCapital(String capital) {this.capital = capital;} public Date getIndependenceDay() {return independenceDay;} public void setIndependenceDay(Date independenceDay) {this.independenceDay = independenceDay;} public long getPopulation() { return population; } public void setPopulation(long population) {this.population = population; } @Override public String toString() { return "Country{" + "capital=" + capital + ", population=" + population + ", independenceDay=" + independenceDay + '}'; } public void setIndependenceDay(String date) { DateFormat format = new SimpleDateFormat("dd/MM/yyyy"); try { this.independenceDay = format.parse(date); } catch (ParseException ex) { Logger.getLogger(Country.class.getName()).log(Level.SEVERE, null, ex); } } public static void main(String args[]) { Country India = new Country("India"); India.setCapital("New Delhi"); India.setIndependenceDay("15/07/1947"); India.setPopulation(1200000000); System.out.println(India); } }

Metode toString dibuat oleh Netbeans IDE


Metode toString yang dihasilkan oleh Netbeans IDE menghasilkan output berikut untuk kelas yang ditentukan di atas:

Country{capital=New Delhi, population=1200000000, independenceDay=Fri Aug 15 00:00:00 VET 1947}

Jika Anda melihat output di atas, Anda akan melihat bahwa Netbeans tidak membuat tanggal yang diformat untuk Anda: melainkan memanggil metode toString() dari kelas java.util.Date

Metode toString() yang dibuat oleh Rclise IDE


Secara default, Eclipse membuat metode toString berikut:

@Override public String toString() { return "Country [name=" + name + ", capital=" + capital + ", population=" + population + ", independenceDay=" + independenceDay + "]"; }

Anda dapat membuat kode untuk metode toString di Eclipse dengan mengklik Sumber --> Hasilkan toString(). Ini juga memberikan beberapa kemungkinan, seperti memilih gaya kode, yaitu menggunakan operan penggabungan atau StringBuilder dan sebagainya. Di bawah ini adalah output dari metode toString() yang baru saja kita buat di Eclipse:

Country [name=India, capital=New Delhi, population=1200000000, independenceDay=Tue Jul 15 00:00:00 VET 1947]

Menggunakan ToStringBuilder untuk Mengganti Metode toString() Java

Bersama dengan banyak kelas berguna seperti PropertyUtils , EqualsBuilder atau HashCodeBuilder, Apache juga menyediakan ToStringBuilder yang dapat menghasilkan kode untuk menghasilkan metode toString() dalam beberapa gaya berbeda. Mari kita lihat seperti apa keluaran metode toString dalam gaya sederhana dan multi-baris: Gaya sederhana:

India,New Delhi,1200000000,Fri Aug 15 00:00:00 VET 1947

Gaya multi-garis:

test.Country@f0eed6[
 name=India
 capital=New Delhi
 population=1200000000
 independenceDay=Fri Aug 15 00:00:00 VET 1947
 ]

NO_FIELD_NAMES_STYLE (gaya tanpa nama bidang)

test.Country@1d05c81[India,New Delhi,1200000000,Fri Aug 15 00:00:00 VET 1947]

SHORT_PREFIX_STYLE (gaya awalan pendek)

Country[name=India,capital=New Delhi,population=1200000000,independenceDay=Fri Aug 15 00:00:00 VET 1947]

ToStringStyle.DEFAULT_STYLE (gaya default)

test.Country@1d05c81[name=India,capital=New Delhi,population=1200000000,independenceDay=Fri Aug 15 00:00:00 VET 1947]

Pustaka sumber terbuka serupa dari Google, Guava juga menyediakan API yang nyaman untuk menghasilkan kode untuk metode toString di Java.

Kapan metode toString dipanggil di Java

toString adalah metode yang cukup spesifik dan dipanggil dari banyak metode JavaAPI seperti println(), printf() , logging, pernyataan tegas , debugger IDE, saat mencetak koleksi, dan saat menggabungkan. Jika subkelas tidak menimpa toString(), maka implementasi default yang ditentukan dalam kelas Object akan dipanggil. Banyak pengembang menggunakan API logging seperti Log4J atau java.util.Logger untuk mengeluarkan log dan sering melewatkan Object di sini.

logger.info("Customer not found:" + customer)

dan jika Pelanggan tidak mengganti toString dan menampilkan informasi penting seperti CustomerId, CustomerName, dll. maka akan cukup sulit untuk mendiagnosis masalahnya. Inilah sebabnya mengapa selalu layak untuk mengganti toString di Java. Mari kita lihat beberapa keuntungan jika kita melakukan hal ini.

Manfaat mengganti metode toString

  1. Seperti dibahas di atas, toString yang diganti dengan benar membantu proses debug dengan mencetak informasi penting.
  2. Jika suatu objek penting disimpan dalam suatu koleksi, maka pencetakan koleksi tersebut akan memanggil metode toString dari objek yang disimpan tersebut, yang dapat mencetak informasi penting tersebut. Salah satu contoh klasik metode toString yang tidak diganti adalah Array di Java, yang mencetak hasil implementasi default, bukan konten array. Meskipun ada beberapa cara untuk mencetak isi array menggunakan Arrays.toString() dan sejenisnya; tetapi karena Array adalah objek Java, akan lebih baik jika ia mengetahui cara mencetak dirinya sendiri, seperti kelas koleksi seperti List atau Set .

Ini hanyalah beberapa manfaat yang akan Anda dapatkan dengan menerapkan atau mengganti metode toString di Java , masih banyak lagi manfaat yang akan Anda dapatkan dan pelajari sendiri. Saya harap tips ini membantu Anda mendapatkan hasil maksimal dari implementasi toString Anda. Beri tahu kami jika Anda mengetahui cara unik bekerja dengan toString yang membantu Anda dalam aplikasi Java.

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