---
title: Tupleクラスを出力するSnipet
tags: []
categories: ["Programming", "Java", "Tuple"]
date: 2012-09-05T07:16:09Z
updated: 2012-09-05T07:16:09Z
---

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 + ")";
        }
    }
