2
类似testcase Bug_for_generic_huansi.java 但在第二层继承的时候嵌套了List
@RunWith(JUnit4.class)
public class GenericObjectJsonParseTest {
@Test
public void parseObject() {
assertEquals("2", JSON.parseObject("{\"data\":[\"1\",\"2\",\"3\"]}",
new TypeReference<BaseGenericType<List<String>>>(){}).data.get(1));
assertEquals("2", JSON.parseObject("{\"data\":[\"1\",\"2\",\"3\"]}",
new TypeReference<ExtendGenericType<String>>(){}).data.get(1));
assertEquals("2", JSON.parseObject("{\"data\":[\"1\",\"2\",\"3\"],\"a\":\"a\"}",
SimpleGenericObject.class).data.get(1));
}
static class BaseGenericType<T> {
public T data;
}
static class ExtendGenericType<T> extends BaseGenericType<List<T>> {
}
static class SimpleGenericObject extends ExtendGenericType<String> {
}
}
在解析SimpleGenericObject类的时候单元测试失败:
java.lang.ClassCastException: java.lang.String cannot be cast to java.util.List