У меня вопрос про использование метода toString(), его переопределение На сколько я знаю, он используется для удобного вывода данных об объекте (чтобы человеку было удобно эти данные прочесть).
У нас в университете в задании по java есть условие создать в классе метод, который бы выводил информацию об объекте.
Будет ли правильно переопределить данный метод и затем в классе Main.java вывести данные об объекте. Только мне нужна проверка в toString(): если переменная объекта не задана, то есть равна null, то мне нужно вывести "данные неизвестны". Можно ли в toString() делать такие проверки и вообще правильно ли использовать данный метод именно для такого вывода информации о классе. Просто где-то слышала, что метод toString() в каком-то случае использовать нельзя, это концептуально неправильно, но я послушала объяснение, а теперь вот сомневаюсь, не делаю ли я ошибку, используя его так.
P.S. я знаю, что правильнее всего было бы создать другой класс для вывода информации и в него передавать ссылку на объект, но в задании написано, что метод, печатающий информацию, должен быть именно в том же классе, в котором все его данные.
Заранее спасибо!
Да, переопределенный метод toString()
дает вам возможность представить в удобном виде состояние объекта. В методе toString()
как и в любом другом методе можно производить необходимые проверки, в том числе и на null
.
Есть случаи, когда метод toString()
использовать нежелательно, например, в перечислимых типах для получения имени enum-значения, т.к. enum-значения имеют метод name()
для этого, а метод toString()
может быть переопределен и его значение может не соответствовать ожидаемому.
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
У меня в программе есть рекурсивный поиск и открытие файла, в обоих случаях программа зависает на время обработки, я пытался решить эту проблему,...
Есть ли какое то правило для строгого именования папок в Spring MVCсмотрел разные видео где использовали например папку dao, я так понимаю она нужна...
Работаю в VS Code, пишу стили в *sass и не показываются подсказки как в файлах *