AString は CharSequenceです。Java ライブラリの多くのメソッドは受け入れられるCharSequenceため、より一般的に動作します。一部のクラスにはメソッド ( など) があり、同等のStringメソッド(などWriter.write(String)) で実装されます。AppendableCharSequenceWriter.append(CharSequence)
そのようなクラスに委譲するクラスを作成していて、何らかのテキスト入力が必要な場合、その入力が aStringまたは であることを選択できますCharSequence。後者を選択すると、クライアントにより多くのオプションが提供され、クラスがより柔軟になります。しかし、そうするコードはあまり見当たりません。テキスト引数は、ほぼ常に aStringではなくCharSequence. を使用することのマイナス面はありCharSequenceますか? パフォーマンス ヒットはありますか?それとも、単にプログラマーの慣習や無知が原因であり、Stringよりもむしろの使用を引き起こしているのCharSequenceでしょうか?
比較
class XMLWriter {
private final Writer writer;
// more stuff here
public void writeComment(String text) {
writer.write("<!-- ");
writer.write(text);
writer.write(" -->");
}
}
と
class XMLWriter {
private final Writer writer;
// more stuff here
public void writeComment(CharSequence text) {
writer.write("<!-- ");
writer.append(text);
writer.write(" -->");
}
}