Здесь есть небольшая проблема, которая немного напоминает ошибку.
Метод toString()
имеет базовую реализацию в Object
.CharSequence
- интерфейс;и хотя метод toString()
появляется как часть этого интерфейса, во время компиляции нет ничего, что заставило бы вас переопределить его и соблюдать дополнительные ограничения, которые Javadoc метода CharSequence
toString()
накладывает на метод toString()
;то есть он должен возвращать строку, содержащую символы в порядке, возвращаемом charAt()
.
Ваша IDE даже не поможет вам, напомнив, что вы , вероятно, должны переопределить toString()
.Например, в intellij это то, что вы увидите, если создадите новую реализацию CharSequence
: http://puu.sh/2w1RJ. Обратите внимание на отсутствие toString()
.
Если вы полагаетесь на toString()
на произвольном CharSequence
он должен работать при условии, что реализатор CharSequence
выполнил свою работу должным образом.Но если вы хотите избежать какой-либо неопределенности в целом, вам следует использовать StringBuilder
и append()
, например:
final StringBuilder sb = new StringBuilder(charSequence.length());
sb.append(charSequence);
return sb.toString();