когда использовать toString () метод

Это может звучать очень простым... может кто-то объяснять использование toString() метод и когда эффективно использовать это?

Сделали поиск на Google, но не мог найти хороший ресурс.

11
задан 25 February 2010 в 05:03
поделиться

6 ответов

Предполагается, что .NET или Java:

В общем случае следует перегружать ToString (), когда требуется текстовое представление класса (при условии, что это имеет смысл для вашего класса).

-121--2904350-

Для класса можно использовать toString (), переопределяя его, чтобы предоставить некоторое значимое текстовое представление объекта.

Например, можно переопределить toString () в классе Person, чтобы вернуть имя и фамилию.

-121--2904351-

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

Это особенно полезно для ведения журнала, отладки или при любых других обстоятельствах, когда необходимо иметь возможность визуализации любого объекта, с которым вы сталкиваетесь, в виде последовательности.

Объекты часто реализуют пользовательское поведение toString , так что метод фактически сообщает о экземпляре объекта. Например, класс Person может переопределить его для возврата значения «Фамилия, имя», в то время как класс Date будет отображать дату, отформатированную в соответствии с некоторыми настройками по умолчанию (такими как текущая культура пользовательского интерфейса).

24
ответ дан 3 December 2019 в 02:40
поделиться
  1. Вы хотите отобразить объект и не хотите раньше проверять, является ли он нулевым.
  2. Вы хотите объединить строки и не думать о каком-либо специальном атрибуте, а просто предоставить программисту атрибут по умолчанию.

Таким образом:

out.println("You are " + user);

будет отображать «You are null» или «You are James», если user is null, или toString отображает «James» для этого (существующего) экземпляра.

2
ответ дан 3 December 2019 в 02:40
поделиться

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

public String createString(final String str) {
  final StringBuilder sb = new StringBuilder(str);
  sb.append("foo");
  sb.append("bar");
  return sb.toString();
}
3
ответ дан 3 December 2019 в 02:40
поделиться

Предполагая, что .NET или Java:

В общем, вы должны перегрузить ToString (), когда вам нужно текстовое представление вашего класса (при условии, что это имеет смысл для вашего класса).

1
ответ дан 3 December 2019 в 02:40
поделиться

Вы можете использовать toString() на классе, переопределив его, чтобы обеспечить некоторое значимое текстовое представление вашего объекта.

Например, вы можете переопределить toString() в классе Person, чтобы вернуть имя и фамилию.

1
ответ дан 3 December 2019 в 02:40
поделиться

Для класса можно использовать toString (), переопределяя его, чтобы обеспечить содержательное текстовое представление объекта.

Например, можно переопределить toString () в классе Person, чтобы вернуть имя и фамилию.

-121--2904351-

Строка должна использоваться при необходимости изменения типа данных на последовательность. Для встроенных типов, таких как int и таких есть строковые представления то, что вы ожидаете. ie

  int i = 5;
  string s = i.ToString(); //s now equals "5" 

Предоставляет символьную строку «5» для большинства сложных типов и всех созданных пользователем типов, которые необходимо перегружать методом tostring, иначе будет получено только имя класса. Команда To string позволяет использовать сложное формообразующее построение в .net с собственными объектами. вы можете предоставить сложные форматеры, такие как класс datetime, чтобы обеспечить гибкость в использовании собственных типов.

0
ответ дан 3 December 2019 в 02:40
поделиться
Другие вопросы по тегам:

Похожие вопросы: