package com.alibaba.json.bvt.bug;
import junit.framework.TestCase;
import org.junit.Assert;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.serializer.SerializerFeature;
public class Bug_for_SpitFire extends TestCase {
public void test_for_spitFire() throws Exception {
GenericDTO<MyDTO> object = new GenericDTO<MyDTO>();
object.setFiled(new MyDTO());
String text = JSON.toJSONString(object, SerializerFeature.WriteClassName);
GenericDTO<MyDTO> object2 = (GenericDTO<MyDTO>) JSON.parseObject(text, GenericDTO.class);
Assert.assertEquals(object.getName(), object2.getName());
Assert.assertEquals(object.getFiled().getId(), object2.getFiled().getId());
}
public static class GenericDTO<T extends AbstractDTO> extends AbstractDTO {
private String name;
private T filed;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public T getFiled() {
return filed;
}
public void setFiled(T filed) {
this.filed = filed;
}
}
public abstract static class AbstractDTO {
}
public static class MyDTO extends AbstractDTO {
private int id;
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
}
}