-
Notifications
You must be signed in to change notification settings - Fork 3
How to work with toString
Данный метод вызывается всегда, когда вы передаете объект в System.out.prinln() и подобные методы.
Метод рекомендуется переопределять, так как ожидается, что возвращаемая строка будет легко читаемая и информативная.
Когда вы вызываете toString() на объекте Person, то желательно, чтобы возвращалось что-то типа: Person name: Aleksandr, phone: -----.
Хорошо реализованный toString помогает также при отладке кода, так как вы в логе видите что за объект был, какие были поля и какие стали.
Однако, если вы переопределяете метод toString, то возвращаемая строка должна содержать всю значимую информацию объекта.
Также надо понимать, что переопределив метод toString и возвращая значение полей объекта в нем, вы по=хорошему должны дать доступ к этим полям на чтение(сделать get-ы), так не сделав этого вы обрекаете других на единственный возможный путь получения информации из этих полей - парсинг вашей строки.
Ну и действительно, смысл убирать getName() у Person, если toString возвращает имя вашего Person объекта?
Заметим в примере ниже, что без переопределения toString у CarKey получается не совсем понятно, это было оставлено специально, для примера.
Пример переопределения: toString