Javaでタプル

お仕事でJavaの開発をしているのだけれど、どうしても複数の値を返す必要がいくつかありました。
それ専用のクラスをその都度作るのもイマイチだし、
Object[]で返すのもダサい。
Scalaならタプルが使えるのに・・・。


なので、Javaでタプルを作ってみました。

/** 2つの要素を持つImmutableなタプル */
public class Tuple2<T1, T2> {
    public final T1 _1;
    public final T2 _2;
    public Tuple2(T1 _1, T2 _2) {
        this._1 = _1;
        this._2 = _2;
    }
}


使い方です。

    /** intとStringを返すメソッド. */
    Tuple2<Integer, String> getIntStr() {
        // ...
        return new Tuple2<Integer, String>(5, "ほげ");
    }


    void foo() {
        Tuple2<Integer, String> ret = getIntStr();
        int n = ret._1;
        String s = ret._2;
    }