Java CharSequence
をString
に変換するにはどうすればよいですか?
toString()
メソッドを呼び出します。
このシーケンス内の文字を含む文字列を、このシーケンスと同じ順序で返します。文字列の長さは、このシーケンスの長さになります。
ここには微妙な問題があり、それはちょっとした落とし穴です
toString()
メソッドには、Object
に基本実装があります。 CharSequence
はインターフェイスです。 toString()
メソッドはそのインターフェイスの一部として表示されますが、コンパイル時にそれをオーバーライドして、CharSequence
toString()
メソッドのjavadocがtoString()
メソッドに追加する追加の制約に従うことを強制するものはありません。つまり、charAt()
によって返される順序で文字を含む文字列を返す必要があるということです。
あなたのIDEは、あなたがおそらくそうするべきです _toString()
をオーバーライドすることを思い出させることであなたを助けさえしません。たとえば、intellijでは、新しいCharSequence
実装を作成する場合に表示されます: http://puu.sh/2w1RJ 。 toString()
がないことに注意してください。
任意のCharSequence
でtoString()
に依存している場合、CharSequence
の実装者が適切に仕事をすれば、それはshould動作します。しかし、不確実性を完全に回避したい場合は、次のようにStringBuilder
およびappend()
を使用する必要があります。
final StringBuilder sb = new StringBuilder(charSequence.length());
sb.append(charSequence);
return sb.toString();
String.valueOf()を直接使用できます
String.valueOf(charSequence)
これはtoString()
と同じですが、実際にtoStringを呼び出す前にcharSequence
でnullチェックを行います。
これは、メソッドがcharSequence
またはnull
の値を返すことができる場合に役立ちます。