在Java开发中经常遇到数据对接的情形,通过接口请求返回json数据,然后对数据进行解析处理,为了通用,经常会有一个通用返回结果类

如下

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
public class ReturnResult<T> {
private Boolean status;
private String message;
private T data;

public Boolean getStatus() {
return status;
}

public void setStatus(Boolean status) {
this.status = status;
}

public String getMessage() {
return message;
}

public void setMessage(String message) {
this.message = message;
}

public T getData() {
return data;
}

public void setData(T data) {
this.data = data;
}

public ReturnResult(Boolean status, String message, T data) {
this.status = status;
this.message = message;
this.data = data;
}

public static <T> ReturnResult<T> getSuccess(String message, T t){
return new ReturnResult<>(true,message,t);
}
}

其中包含有泛型,当直接使用fastjson解析,实体类使用该工具类时就会出现其中的泛型未转换成功的情况。

此时只要这么写就可以转换成功了

1
2
ReturnResult<User> returnResult =
JSONObject.parseObject(ss, new TypeReference<ReturnResult<User>>(){});

其中泛型的数据也会转换成功