@@ -0,0 +1,1360 @@
+package com.alibaba.json.bvt;%0A%0Aimport com.alibaba.fastjson.JSON;%0Aimport com.alibaba.fastjson.TypeReference;%0Aimport junit.framework.TestCase;%0A%0Apublic class WildcardTypeTest extends TestCase %7B%0A    public void test_for_wildcardType() throws Exception %7B%0A        TestType%3CB%3E b = new TestType%3CB%3E();%0A        b.value = new B(2001, %22BBBB%22);%0A        b.superType = new TestType%3CA%3E(new A(101));%0A%0A        String json = JSON.toJSONString(b);%0A%0A        assertEquals(%22%7B%5C%22superType%5C%22:%7B%5C%22value%5C%22:%7B%5C%22id%5C%22:101%7D%7D,%5C%22value%5C%22:%7B%5C%22id%5C%22:2001,%5C%22name%5C%22:%5C%22BBBB%5C%22%7D%7D%22, json);%0A%0A        TestType%3CB%3E b1 = JSON.parseObject(json, new TypeReference%3CTestType%3CB%3E%3E() %7B%7D);%0A        String json2 = JSON.toJSONString(b1);%0A%0A        assertEquals(json, json2);%0A    %7D%0A%0A    public static class TestType%3CX%3E %7B%0A        public X value;%0A        public TestType%3C? super X%3E superType;%0A%0A        public TestType() %7B%0A%0A        %7D%0A%0A        public TestType(X value) %7B%0A            this.value = value;%0A        %7D%0A    %7D%0A%0A    public static class TestType2%3CX, Y%3E %7B%0A        TestType2%3C? super Y, ? super X%3E superReversedType;%0A    %7D%0A%0A    public static class A %7B%0A        public int id;%0A%0A        public A(int id) %7B%0A            this.id = id;%0A        %7D%0A    %7D%0A%0A    public static class B extends A %7B%0A        public String name;%0A%0A        public B(int id, String name) %7B%0A            super(id);%0A            this.name = name;%0A        %7D%0A    %7D%0A%7D%0A

add testcase for wildcardType.