Tupleクラスを出力するSnipet
public class TupleGen {
public static void main(String[] args) {
for (int i = 2; i <= 3; i++) {
System.out.print("public final class Tuple" + i + "<");
for (int j = 1; j <= i; j++) {
if (j > 1) {
System.out.print(", ");
}
System.out.print("T" + j);
}
System.out.println("> implements Serializable {");
System.out
.println(" private static final long serialVersionUID = 1L;");
for (int j = 1; j <= i; j++) {
System.out.println(" public final T" + j + " _" + j + ";");
}
System.out.println();
System.out.print(" public Tuple" + i + "(");
for (int j = 1; j <= i; j++) {
if (j > 1) {
System.out.print(", ");
}
System.out.print("T" + j + " _" + j + "");
}
System.out.println(") {");
for (int j = 1; j <= i; j++) {
System.out.println(" this._" + j + " = _" + j + ";");
}
System.out.println(" }");
System.out.println();
System.out.println(" public String toString() {");
System.out.print(" return \"(\" + ");
for (int j = 1; j <= i; j++) {
if (j > 1) {
System.out.print(" + \", \" + ");
}
System.out.print("_" + j);
}
System.out.println(" + \")\";");
System.out.println(" }");
System.out.println("}");
}
}
}
出力結果
public final class Tuple2<T1, T2> implements Serializable {
private static final long serialVersionUID = 1L;
public final T1 _1;
public final T2 _2;
public Tuple2(T1 _1, T2 _2) {
this._1 = _1;
this._2 = _2;
}
public String toString() {
return "(" + _1 + ", " + _2 + ")";
}
}
public final class Tuple3<T1, T2, T3> implements Serializable {
private static final long serialVersionUID = 1L;
public final T1 _1;
public final T2 _2;
public final T3 _3;
public Tuple3(T1 _1, T2 _2, T3 _3) {
this._1 = _1;
this._2 = _2;
this._3 = _3;
}
public String toString() {
return "(" + _1 + ", " + _2 + ", " + _3 + ")";
}
}