10 Підказок по перевизначення методу tostring () в java (частина 2)

10 підказок по перевизначення методу toString () в Java (частина 2)

toString приклади в Java

Ми будемо використовувати наступний клас, що б продемонструвати наш toString приклад для Netbeans, Eclipse і Apache's ToStringBuilder утиліти.

Метод toString створений Netbeans IDE

Метод toString створений Netbeans IDE створює наступний висновок для певного вище клас:

Якщо ви подивитися на наведений висновок, то побачите, що Netbeans не створює форматований дату для вас: замість цього він викликає метод toString () класу java.util.Date

Метод toString () створений IDE Rclise

За замовчуванням Eclipse створює наступний метод toString:

Ви можете створити код для методу toString в Eclipse натиснувши на Source -> Generate toString (). Це так само надає кілька можливостей, таких як вибір стилю коду, тобто використання операнда конкатенації або StringBuilder і так далі. Нижче висновок методу toString () який ми тільки що створили в Eclipse:

Використання ToStringBuilder для перевизначення методу Java toString ()

Разом з багатьма корисними класами, такими як PropertyUtils. EqualsBuilder або HashCodeBuilder Apache так само надає ToStringBuilder який може генерувати код для виведення методу toString () декількома різними стилями. Давайте подивимося як виглядає висновок методу toString в простому і багато-рядковому стилі:
Простий стиль:

NO_FIELD_NAMES_STYLE (стиль без імен полів)

SHORT_PREFIX_STYLE (стиль з коротким префіксом)

ToStringStyle.DEFAULT_STYLE (стиль за замовчуванням)

Схожа відкрита бібліотека від Google - Guava так само надає зручний API для створення коду методу toString в Java.

Коли в Java викликається метод toString

toString досить специфічний метод і викликається з безлічі JavaAPI методів таких як println (), printf (). журнал роботи, assert statement. отладчики в IDE, при роздруківці колекцій і при конкатенації. Якщо підклас не перекриває toString (), тоді викликається реалізація за замовчуванням певна в класі Object. Багато розробники використовують API для журналирования типу Log4J або java.util.Logger для виведення журналів і часто пропускають тут Object.

і якщо Customer не переважають toString і не виводить важливої ​​інформації, такої як customerId, customerName і т.д. то досить важко буде діагностувати проблему. Це те, чому завжди варто перевизначати toString в Java. Давайте поглянемо на деякі переваги в разі, якщо ми будемо це робити.

Переваги перевизначення методу toString

  1. Як говорилося вище, правильно перевизначення toString допомагає в налагодженні шляхом виведення важливої ​​інформації.
  2. Якщо важливий об'єкт збережений в колекції, тоді друк колекції викличе toString метод збереженого об'єкта, який зможе роздрукувати важливу інформацію. Один з класичних приклади не перевизначеного методу toString це Array в Java, який друкує результат реалізації за замовчуванням, замість вмісту масиву. Хоча є кілька способів роздрукувати вміст масиву за допомогою Arrays.toString () і т.п; але оскільки Array є об'єктом Java, було б набагато краще, якби він знав як роздрукувати себе, так само, як класи колекцій, на кшталт List або Set.

Це лише деякі з переваг які ви отримаєте при реалізації або перевизначення методу toString в Java. багато інших переваг ви отримаєте і вивчіть самі. Я сподіваюся ці підказки допоможуть вам отримати більшість ваших реалізацій toString. Дайте нам знати якщо ви знаєте якісь унікальні способи роботи з toString які допомагають вам у ваших Java додатках.