Ответы:
Призывая его toString()метод.
Возвращает строку, содержащую символы в этой последовательности в том же порядке, что и эта последовательность. Длина строки будет длиной этой последовательности.
Здесь есть тонкая проблема, которая немного напоминает.
toString()Метод имеет базовую реализацию в Object. CharSequenceэто интерфейс; и хотя toString()метод появляется как часть этого интерфейса, во время компиляции нет ничего, что заставило бы вас переопределить его и соблюдать дополнительные ограничения, которые CharSequence toString()javadoc метода накладывает на toString()метод; т.е. что он должен возвращать строку, содержащую символы в порядке, возвращаемом charAt().
Ваша IDE даже не поможет вам, напомнив, что вы, вероятно, должны переопределить toString(). Например, в intellij это то, что вы увидите, если создадите новую CharSequenceреализацию: http://puu.sh/2w1RJ . Обратите внимание на отсутствие toString().
Если вы полагаетесь на toString()произвольное CharSequence, оно должно работать, если CharSequenceразработчик выполнил свою работу должным образом. Но если вы хотите избежать какой-либо неопределенности в целом, вы должны использовать a StringBuilderи append(), например, так:
final StringBuilder sb = new StringBuilder(charSequence.length());
sb.append(charSequence);
return sb.toString();
CharSequence интерфейс явно определяет toString()- реализатор не пропустил это. В Javadoc состояние «Возвращает строку , содержащие символы в этой последовательности в том же порядке, что и этой последовательности. Длина строки будет длиной этой последовательности» с момента создания в 1.4 . Люди, пожалуйста, проверьте, что вы upvote
StringBuilderможет не дать ожидаемого результата. То же самое касается любого другого интерфейса, такого как Listили Set, в частности их equals()и hashCode()методы, которые будут компилироваться без переопределений, но должны быть переопределены в соответствии с контрактом.
Вы можете напрямую использовать String.valueOf ()
String.valueOf(charSequence)
Хотя это то же самое, toString()что и проверка на null charSequenceперед фактическим вызовом toString.
Это полезно, когда метод может возвращать либо значение, charSequenceлибо nullзначение.
charSequenceноль, то возвращаемая строка будет "null"и нет null.
setText(CharSequence)не делают то, что вам нужно?