content: 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> {
  
      }
  }
  