public boolean isMapType() {
        return this instanceof MapType;
    }
@Test
    public void testMapSerialAndDeser() {
        // map<int,struct<c1:int,cc1:string>>
        StructType c1 = new StructType(Lists.newArrayList(
                new StructField("c1", ScalarType.createType(PrimitiveType.INT)),
                new StructField("cc1", ScalarType.createDefaultCatalogString())
        ));
        MapType mapType =
                new MapType(ScalarType.createType(PrimitiveType.INT), c1);
        String json = GsonUtils.GSON.toJson(mapType);
        Type deType = GsonUtils.GSON.fromJson(json, Type.class);
        Assert.assertTrue(deType.isMapType());
        Assert.assertEquals("MAP<INT,struct<c1 int(11), cc1 varchar(1073741824)>>", deType.toString());
        // Make sure select fields are false when initialized
        Assert.assertFalse(deType.selectedFields[0]);
        Assert.assertFalse(deType.selectedFields[1]);
    }