JavaRush /Blog Jawa /Random-JV /10 Tips kanggo Ngganti Metode toString() ing Jawa (Bagian...
Ku6ep
tingkat

10 Tips kanggo Ngganti Metode toString() ing Jawa (Bagian 2)

Diterbitake ing grup

toString conto ing Jawa

Kita bakal nggunakake kelas ing ngisor iki kanggo nduduhake conto toString kanggo Netbeans, Eclipse lan 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); } }

Cara toString digawe dening Netbeans IDE


Cara toString sing digawe dening Netbeans IDE ngasilake output ing ngisor iki kanggo kelas sing ditemtokake ing ndhuwur:

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

Yen katon ing output ndhuwur, sampeyan bakal weruh sing Netbeans ora nggawe tanggal format kanggo sampeyan: tinimbang, iku nelpon toString () cara kelas java.util.Date

Cara toString () digawe dening Rclise IDE


Kanthi gawan, Eclipse nggawe metode toString ing ngisor iki:

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

Sampeyan bisa ngasilake kode kanggo metode toString ing Eclipse kanthi ngeklik Sumber -> Generate toString (). Uga nyedhiyakake sawetara kemungkinan, kayata milih gaya kode, yaiku, nggunakake operan concatenation utawa StringBuilder lan liya-liyane. Ing ngisor iki minangka output saka metode toString () sing lagi wae digawe ing Eclipse:

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

Nggunakake ToStringBuilder kanggo Override Metode toString () Jawa

Bebarengan karo akeh kelas migunani kayata PropertyUtils , EqualsBuilder utawa HashCodeBuilder, Apache uga nyedhiyakake ToStringBuilder sing bisa ngasilake kode kanggo ngasilake metode toString () ing sawetara gaya sing beda. Ayo ndeleng apa output saka metode toString katon ing gaya prasaja lan multi-baris: Gaya prasaja:

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

Multi-line gaya:

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 jeneng kolom)

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

SHORT_PREFIX_STYLE (gaya awalan singkat)

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

ToStringStyle.DEFAULT_STYLE (gaya standar)

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

Pustaka open source sing padha saka Google, Guava uga nyedhiyakake API sing trep kanggo ngasilake kode kanggo metode toString ing Jawa.

Nalika metode toString diarani ing Jawa

toString minangka cara sing cukup spesifik lan diarani saka akeh metode JavaAPI kayata println (), printf () , logging, statement statement , debugger IDE, nalika nyithak koleksi, lan nalika nggabungake. Yen subclass ora override toString (), banjur implementasine standar ditetepake ing kelas Obyek diarani. Akeh pangembang nggunakake API logging kaya Log4J utawa java.util.Logger kanggo ngasilake log lan asring ora kejawab Obyek ing kene.

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

lan yen Pelanggan ora nimpa String lan ngasilake informasi penting kaya customerId, customerName, etc. banjur bakal cukup angel kanggo diagnosa masalah. Mulane iku tansah worth overriding toString ing Jawa. Ayo deleng sawetara keuntungan yen kita nindakake iki.

Keuntungan saka overriding metode toString

  1. Kaya sing wis dibahas ing ndhuwur, toString sing ditindhes kanthi bener mbantu debugging kanthi nyithak informasi penting.
  2. Yen obyek penting disimpen ing koleksi, banjur nyithak koleksi kasebut bakal nelpon metode toString saka obyek sing disimpen, sing bisa nyithak informasi penting. Salah sawijining conto klasik saka metode toString sing ora ditimpa yaiku Array ing Jawa, sing nyithak asil implementasi standar tinimbang isi array. Senajan ana sawetara cara kanggo print isi Uploaded nggunakake Arrays.toString () lan kaya; nanging wiwit Array iku obyek Jawa, iku bakal luwih apik yen ngerti carane print dhewe, kaya kelas koleksi kaya List utawa Set .

Iki mung sawetara keuntungan sing bakal sampeyan entuk kanthi ngetrapake utawa ngatasi metode toString ing Jawa , ana akeh keuntungan liyane sing bakal sampeyan entuk lan sinau dhewe. Muga-muga tips iki mbantu sampeyan ngoptimalake implementasi toString. Ayo kita ngerti yen sampeyan ngerti cara unik kanggo nggarap toString sing mbantu sampeyan ing aplikasi Java.

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