package com.alibaba.json.bvt.bug; import junit.framework.TestCase; import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.serializer.SerializerFeature; public class Bug_for_SpitFire_3 extends TestCase { public void test_for_SpitFire() { Generic<Payload> q = new Generic<Payload>(); q.setHeader("Sdfdf"); q.setPayload(new Payload()); String text = JSON.toJSONString(q, SerializerFeature.WriteClassName); System.out.println(text); JSON.parseObject(text, Generic.class); } public static abstract class AbstractDTO { private String test; public String getTest() { return test; } public void setTest(String test) { this.test = test; } } public static class Payload extends AbstractDTO { } public static class Generic<T extends AbstractDTO> extends AbstractDTO { String header; T payload; public String getHeader() { return header; } public void setHeader(String header) { this.header = header; } public T getPayload() { return payload; } public void setPayload(T payload) { this.payload = payload; } } }