По мнению некоторых авторов, на метод toString() нельзя полагаться при сохранении стабильности кода, так как его использование для бизнес-логики может привести к риску молчаливого нарушения логики. 1
Это связано с тем, что метод toString() есть у всех объектов в Java, и если его не переопределить, он только даёт описание класса и хэш-кода объекта, не принося особой пользы. 12
Считается, что toString() подходит только для описаний, понятных человеку, и в первую очередь техническому персоналу, отвечающему за работу приложения. 12 Очевидный сценарий использования — логирование или любой другой текст, где содержание не предназначено для автоматической обработки. 12