このエントリーをはてなブックマークに追加

JavaDoc

文字列を結合します。イテラブルから、カンマ区切りだったり、行区切りの文字列を簡単に作成できます。マップにも対応

staticメソッド

返り値 static Joiner

結合部分の文字を指定して、Joinerを作成します。

メソッド

<A extends Appendable> 返り値 A

Appendableに追加。Appendableは、IOExceptionをキャッチする必要があります。

返り値 StringBuilder

StringBuilderに追加します。StringBuilderは文字列を合わせるのに効率的です。

返り値 String

結合した文字列を返します。

返り値 Joiner

注意事項

Immutable 一度、インスタンスを生成したら、あとでskipnullとかしても無駄。2回読んだりするとエラー出る。あとで設定を変更しないこと

//無駄
Joiner joiner=Joiner.on(",");
joiner.skipNulls();
//動くけど間違い。再度joinerでuseForNullとか呼ぶとエラー出る。
Joiner joiner=Joiner.on(",");
joiner=joiner.skipNulls();

コード見ると、既存のJoinerを引数に新しいJoinerを作成している。

  public Joiner skipNulls() {
    return new Joiner(this) {
..

内部クラス MapJoiner

マップを結合するためのJoiner Joinerから、withKeyValueSeparatorで作られる。なぜか、SkipNullsがない。

キーか値にnullが含まれている場合は、useForNull指定されていないとエラー出る。