Java中的元组

自定义元组

class A<L,R>{

    public static void main(String\[\] args) {
        // hutool的pair可以序列化,其他包下的都不可用!
//        Map<String, Object> map = new HashMap<>();
//        map.put("aaa", new Date());
//        Pair<String, Map<String, Object>> pair = new  Pair<>("String0", map);
//        System.out.println(pair);
//        String s = JSONObject.toJSONString(pair);
//        System.out.println(s);
//        Pair<String, Map<String, Object>> stringMapPair1 =
//                JSONObject.parseObject(s, new TypeReference<Pair<String, Map<String, Object>>>() {});
//        System.out.println(stringMapPair1);
//        Pair stringMapPair =
//                JSONObject.parseObject(s, Pair.class);
//        System.out.println(stringMapPair);

        A<String,Map<String,Object>> a = new A<>();
        a.setLeft("String");
        Map<String, Object> map = new HashMap<>();
        map.put("aaa", new Date());
        a.setRight(map);
        String str = JSONObject.toJSONString(a);
        System.out.println(str);
        A<String, Map<String, Object>> a1 =
                JSONObject.parseObject(str, new TypeReference<A<String, Map<String, Object>>>() {});
        System.out.println(a1);
        A a2 =
                JSONObject.parseObject(str, A.class);
        System.out.println(a2);

    }
    private L left;
    private R right;

    public L getLeft() {
        return left;
    }

    public void setLeft(L left) {
        this.left = left;
    }

    public R getRight() {
        return right;
    }

    public void setRight(R right) {
        this.right = right;
    }

    @Override
    public String toString() {
        return "A{" +
                "left=" + left +
                ", right=" + right +
                '}';
    }
}
//结果
{"left":"String","right":{"aaa":1685671202468}}
A{left=String, right={aaa=1685671202468}}
A{left=String, right={"aaa":1685671202468}}