Вопрос-ответ

How to use the toString method in Java?

Как использовать метод toString в Java?

Кто-нибудь может объяснить мне концепцию toString() метода, определенного в Object классе? Как он используется и какова его цель?

Переведено автоматически
Ответ 1

Из Object.toString документов:


Возвращает строковое представление объекта. В общем случае, toString метод возвращает строку, которая "текстуально представляет" этот объект. Результатом должно быть краткое, но информативное представление, которое легко прочитать пользователю. Рекомендуется, чтобы все подклассы переопределяли этот метод.


toString Метод для class Object возвращает строку, состоящую из имени класса, экземпляром которого является объект, символа со знаком `@' и шестнадцатеричного представления хэш-кода объекта без знака. Другими словами, этот метод возвращает строку, равную значению:


getClass().getName() + '@' + Integer.toHexString(hashCode())

Пример:

String[] mystr ={"a","b","c"};
System.out.println("mystr.toString: " + mystr.toString());

output:- mystr.toString: [Ljava.lang.String;@13aaa14a
Ответ 2

Использование String.toString:

Всякий раз, когда вам требуется изучить вызываемое конструктором значение в String форме, вы можете просто использовать String.toString... для примера...

package pack1;

import java.util.*;

class Bank {

String n;
String add;
int an;
int bal;
int dep;

public Bank(String n, String add, int an, int bal) {

this.add = add;
this.bal = bal;
this.an = an;
this.n = n;

}

public String toString() {
return "Name of the customer.:" + this.n + ",, "
+ "Address of the customer.:" + this.add + ",, " + "A/c no..:"
+ this.an + ",, " + "Balance in A/c..:" + this.bal;
}
}

public class Demo2 {

public static void main(String[] args) {

List<Bank> l = new LinkedList<Bank>();

Bank b1 = new Bank("naseem1", "Darbhanga,bihar", 123, 1000);
Bank b2 = new Bank("naseem2", "patna,bihar", 124, 1500);
Bank b3 = new Bank("naseem3", "madhubani,bihar", 125, 1600);
Bank b4 = new Bank("naseem4", "samastipur,bihar", 126, 1700);
Bank b5 = new Bank("naseem5", "muzafferpur,bihar", 127, 1800);
l.add(b1);
l.add(b2);
l.add(b3);
l.add(b4);
l.add(b5);
Iterator<Bank> i = l.iterator();
while (i.hasNext()) {
System.out.println(i.next());
}
}

}

... скопируйте эту программу в свой Eclipse и запустите ее... вы получите представление о String.toString...

Ответ 3

toString() Метод возвращает текстовое представление объекта. Базовая реализация уже включена в java.lang.Object и поэтому, поскольку все объекты наследуются от java.lang.Object, гарантируется, что каждый объект в Java имеет этот метод.

Переопределение метода - всегда хорошая идея, особенно когда дело доходит до отладки, потому что отладчики часто отображают объекты по результату toString() метода. Поэтому используйте осмысленную реализацию, но используйте ее для технических целей. Логика приложения должна использовать геттеры:

public class Contact {
private String firstName;
private String lastName;
public Contact (String firstName, String lastName) {
this.firstName = firstName;
this.lastName = lastName;
}
public String getFirstName() {return firstName;}
public String getLastName() {return lastName;}

public String getContact() {
return firstName + " " + lastName;
}

@Override
public String toString() {
return "["+getContact()+"]";
}
}
Ответ 4

При необходимости он может использоваться в контексте приложения, но гораздо чаще он используется для целей отладки. Например, когда вы нажимаете точку останова в IDE, гораздо проще прочитать значимый toString() набор объектов, чем проверять их элементы.

Нет установленных требований к тому, что должен делать toString() метод. По соглашению, чаще всего он сообщает вам имя класса и значение соответствующих элементов данных. Чаще всего toString() методы в IDE генерируются автоматически.

Полагаться на определенный вывод из toString() метода или анализировать его в программе - плохая идея. Что бы вы ни делали, не идите по этому пути.

2023-07-11 02:30 java