content: package com.alibaba.json.bvt.parser;
  
  import java.util.ArrayList;
  import java.util.List;
  
  import junit.framework.Assert;
  import junit.framework.TestCase;
  
  import com.alibaba.fastjson.JSON;
  
  public class GenericTest extends TestCase {
  
      public void test_0() throws Exception {
          String text;
          {
              User user = new User("Z友群");
              user.getAddresses().add(new Address("滨江"));
              text = JSON.toJSONString(user);
          }
          
          System.out.println(text);
          
          User user = JSON.parseObject(text, User.class);
          
          Assert.assertEquals("Z友群", user.getName());
          Assert.assertEquals(1, user.getAddresses().size());
          Assert.assertEquals(Address.class, user.getAddresses().get(0).getClass());
          Assert.assertEquals("滨江", user.getAddresses().get(0).getValue());
      }
  
      public static class User {
  
          private String name;
  
          public User(){
  
          }
  
          public User(String name){
              this.name = name;
          }
  
          public String getName() {
              return name;
          }
  
          public void setName(String name) {
              this.name = name;
          }
  
          private List<Address> addresses = new ArrayList<Address>();
  
          public List<Address> getAddresses() {
              return addresses;
          }
  
          public void setAddresses(List<Address> addresses) {
              this.addresses = addresses;
          }
  
      }
  
      public static class Address {
  
          private String value;
  
          public Address(){
          }
  
          public Address(String value){
              this.value = value;
          }
  
          public String getValue() {
              return value;
          }
  
          public void setValue(String value) {
              this.value = value;
          }
  
      }
  }
  