Java.io.Writer インターフェースには、追加と書き込みという2つのメソッドがあります。これら2つの違いは何ですか?それも言う
out.append(c)
形式のこのメソッドの呼び出しは、呼び出しout.write(c)
とまったく同じように動作します。
では、2つのメソッド名のバリアントがある理由は何ですか?
Append()とwrite()の間には小さな違いがあります。これらすべては、Javadocを読むことで解決できます。ヒント。 ;)
void
を返しますwriteは、CharSequenceが利用可能になる前に作成された古いスタイルのフォーマットです。
これらのメソッドはオーバーロードされるため、
write(int)
int
はcharにキャストされます。 append(char)
はchar型である必要があります。write(char[] chars)
はcharの配列を取り、同等のappend()はありません。おそらくAppendableインターフェースに準拠するために http://download.Oracle.com/javase/6/docs/api/Java/lang/Appendable.html
Append()
はCharSequence
を取ることができますが、write()
はString
を取ることができます。
String
はCharSequence
の実装であるため、String
をappend()
に渡すこともできます。ただし、StringBuilder
またはStringBuffer
をappend
に渡すこともできます。これは、write()
では行えません。
ドキュメントからわかるように、appendは先ほど書き込んだWriterも返すため、次のような複数の追加を実行できます。
out.append(a).append(b).append(c)
Writer.append(c)
は、Writerインスタンスを返します。したがって、複数の呼び出しをチェーンして追加することができます。 out.append("Hello").append("World")
;
Appendable
インターフェースの副産物のように思えますが、Java.io.Writer
との互換性を提供するために実装しますJava.util.Formatter
。お気づきのように、ドキュメントではJava.io.Writer
2つの方法の間に実際的な違いはありません。