Как переопределить и использовать toString() в Java
Стандартный toString() часто печатает непонятные ссылки на объекты вместо полезной информации, что мешает логированию и отладке. Разбираем, когда следует переопределять toString(), как безопасно включать поля и примеры шаблонов для логов и отладки без утечек конфиденциальных данных.
Вы научитесь реализовывать корректный переопределённый toString с учётом приватных полей и получите шаблон реализации для логирования и отладки в ваших классах.
Метод toString() Java: синтаксис
public String toString()
{
return getClass().getName()+"@"+Integer.toHexString(hashCode());
}
// программа Java для демонстрации
// работы метода toString()
class Best_Friend {
String name;
int age;
String college;
String course;
String address;
Best_Friend
(String name, int age, String college, String course, String address)
{
this.name = name;
this.age = age;
this.college = college;
this.course = course;
this.address = address;
}
public static void main(String[] args)
{
Best_Friend b =
new Best_Friend("Gulpreet Kaur", 21, "BIT MESRA", "M.TECH", "Kiriburu");
System.out.println(b);
System.out.println(b.toString());
}
}Результат:
Best_Friend@232204a1
Best_Friend@232204a1Пояснение: В приведенной выше программе мы создаем объект класса Best_Friend и предоставляем всю информацию о друге. Но когда мы пытаемся вывести Object, мы отображаем данные из classname@HashCode_in_Hexadeciaml_form. Если нужна соответствующая информация об объекте Best_friend, тогда нужно переопределить метод toString Java класса Object в классе Best_Friend.
// программа Java для демонстрации
// работы метода toString()
class Best_Friend {
String name;
int age;
String college;
String course;
String address;
Best_Friend
(String name, int age, String college, String course, String address)
{
this.name = name;
this.age = age;
this.college = college;
this.course = course;
this.address = address;
}
public String toString()
{
return name + " " + age + " " + college + " " + course + " " + address;
}
public static void main(String[] args)
{
Best_Friend b =
new Best_Friend("Gulpreet Kaur", 21, "BIT MESRA", "M.TECH", "Kiriburu");
System.out.println(b);
System.out.println(b.toString());
}
}Вывод:
Gulpreet Kaur 21 BIT MESRA M.TECH Kiriburu
Gulpreet Kaur 21 BIT MESRA M.TECH KiriburuПримечание. Во всех классах контейнерах, коллекциях, классах String, StringBuffer, StringBuilder метод toString Java переопределяется для значимого представления String. Поэтому настоятельно рекомендуется также переопределить метод toString() и в нашем классе.
// программа Java для демонстрации
// работы метода toString()
import java.util.*;
class Best_Friend {
String name;
int age;
String college;
String course;
String address;
Best_Friend
(String name, int age, String college, String course, String address)
{
this.name = name;
this.age = age;
this.college = college;
this.course = course;
this.address = address;
}
public static void main(String[] args)
{
Best_Friend b =
new Best_Friend("Gulpreet Kaur", 21, "BIT MESRA", "M.TECH", "Kiriburu");
System.out.println(b);
String s = new String("Gulpreet Kaur");
System.out.println(s);
Integer i = new Integer(21);
System.out.println(i);
ArrayList l = new ArrayList();
l.add("BIT");
l.add("M.TECH");
System.out.println(l);
}
}Вывод:
Best_Friend@232204a1
Gulpreet Kaur
21
[BIT, M.TECH]Пожалуйста, оставляйте свои комментарии, если найдете ошибку в примерах использования метода toString или захотите поделиться дополнительной информацией по теме статьи.
Комментарии