@@ -0,0 +1,1419 @@
+package com.alibaba.json.bvt.bug;%0A%0Aimport java.util.ArrayList;%0A%0Aimport org.junit.Assert;%0A%0Aimport com.alibaba.fastjson.JSON;%0Aimport com.alibaba.fastjson.TypeReference;%0A%0Aimport junit.framework.TestCase;%0A%0Apublic class Bug_for_issue_389 extends TestCase %7B%0A%0A    public void test_for_issue() throws Exception %7B%0A        Def def = new Def();%0A        def.add(new User());%0A        String defStr = JSON.toJSONString(def);%0A%0A        Assert.assertEquals(%22%5B%7B%7D%5D%22, defStr);%0A        %0A        Def _def = JSON.parseObject(defStr, Def.class);%0A        Assert.assertEquals(User.class, _def.get(0).getClass());%0A    %7D%0A    %0A    public void test_for_issue_1() throws Exception %7B%0A        Def def = new Def();%0A        def.add(new User());%0A        String defStr = JSON.toJSONString(def);%0A%0A        Assert.assertEquals(%22%5B%7B%7D%5D%22, defStr);%0A        %0A        Def _def = JSON.parseObject(defStr, new TypeReference%3CDef%3E() %7B%7D);%0A        Assert.assertEquals(User.class, _def.get(0).getClass());%0A    %7D%0A%0A    public static class User %7B%0A%0A        String name;%0A        String value;%0A%0A        public String getName() %7B%0A            return name;%0A        %7D%0A%0A        public void setName(String name) %7B%0A            this.name = name;%0A        %7D%0A%0A        public String getValue() %7B%0A            return value;%0A        %7D%0A%0A        public void setValue(String value) %7B%0A            this.value = value;%0A        %7D%0A%0A    %7D%0A%0A    public static class Def extends ArrayList%3CUser%3E %7B%0A%0A    %7D%0A%7D%0A

add testcase for issue 389. https://github.com/alibaba/fastjson/issues/389