package com.alibaba.json.bvt.parser; import java.util.ArrayList; import java.util.List; import junit.framework.TestCase; import org.junit.Assert; import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.TypeReference; import com.alibaba.fastjson.annotation.JSONField; public class TypeUtilsTest_interface extends TestCase { public void test_castToJavaBean() throws Exception { VO vo = new VO(); vo.setId(123); vo.setName("abc"); Assert.assertEquals("{\"ID\":123,\"name\":\"abc\"}", JSON.toJSONString(vo)); } public void test_parse() throws Exception { VO vo = JSON.parseObject("{\"xid\":123,\"name\":\"abc\"}", VO.class); Assert.assertEquals(123, vo.getId()); Assert.assertEquals("abc", vo.getName()); } public void test_parse_var() throws Exception { List<?> list = JSON.parseObject("[]", new TypeReference<List<?>>() { }); Assert.assertNotNull(list); Assert.assertEquals(0, list.size()); } public void test_deser() throws Exception { JSON.parseObject("{\"id\":123}", new TypeReference<X_I>(){}); } public void test_deser2() throws Exception { JSON.parseObject("{\"id\":123}", new TypeReference<X_X<Integer>>(){}); } public void test_deser2_x() throws Exception { JSON.parseObject("{\"id\":123}", new TypeReference<X_X<?>>(){}); } public static class X_I extends X<Integer> { } public static class X_X<T> extends X<T> { } public static class X<T> { private T id; public X(){ } public T getId() { return id; } public void setId(T id) { this.id = id; } } public static class VO implements IV { private int id; private String name; public int getId() { return id; } public void setId(int id) { this.id = id; } public String getName() { return name; } public void setName(String name) { this.name = name; } public String getName(String xx) { return null; } public String getName(String xx, int v) { // TODO Auto-generated method stub return null; } @JSONField(deserialize = false) public void setName(int value) { // TODO Auto-generated method stub } public void setName(int value, int x) { // TODO Auto-generated method stub } } public static interface IV { @JSONField(name = "ID") int getId(); @JSONField(name = "xid") void setId(int value); @JSONField(name = "NAME") String getName(String xx); @JSONField(name = "NAME") String getName(String xx, int v); @JSONField(name = "xid_1") void setName(int value); } }