package com.alibaba.json.bvt.bug; import java.util.ArrayList; import org.junit.Assert; import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.TypeReference; import junit.framework.TestCase; public class Bug_for_issue_389 extends TestCase { public void test_for_issue() throws Exception { Def def = new Def(); def.add(new User()); String defStr = JSON.toJSONString(def); Assert.assertEquals("[{}]", defStr); Def _def = JSON.parseObject(defStr, Def.class); Assert.assertEquals(User.class, _def.get(0).getClass()); } public void test_for_issue_1() throws Exception { Def def = new Def(); def.add(new User()); String defStr = JSON.toJSONString(def); Assert.assertEquals("[{}]", defStr); Def _def = JSON.parseObject(defStr, new TypeReference<Def>() {}); Assert.assertEquals(User.class, _def.get(0).getClass()); } public static class User { String name; String value; public String getName() { return name; } public void setName(String name) { this.name = name; } public String getValue() { return value; } public void setValue(String value) { this.value = value; } } public static class Def extends ArrayList<User> { } }