Javaのジェネリクスとjsonファイルの作り方

Javaジェネリクス(総称型)はC++でいうテンプレートらしいです。
これを使えばjson用のオブジェクトも楽に作れそう

import java.util.ArrayList;
import java.util.List;

public class MyJson<T> {
    public int num;
    public List<T> extras;
    
    MyJson() {
        this.num = -1;
        this.extras = new ArrayList<>();
    }
}

これを使うときはこんな感じにやればいいかな? jsonへのエンコードjsonicを使っています。

public class MakeJson {
    public static void main(String[] args) {
        PrinterWriter out1 = new PrinterWriter(args[1]);
        PrinterWriter out2 = new PrinterWriter(args[2]);
        MyJson<String> obj1 = new MyJson<>();
        MyJson<Map<String, String>> obj2 = new MyJson<>();
        obj1.num = 1;
        List<String> extras1 = new ArrayList<>();
        obj1.extras = extras1;
        obj2.num = 2;
        Map<String, String> extras2 = new Map<>();
        obj2.extras = extras2;
        String string1 = JSON.encode(obj1, ou1, true);
        String string2 = JSON.encode(obj2, out2, true);
        out1.close();
        out2.close();
    }
}