包装类工具类 用于接收不同类型的参数
package com.example.mydemo.demo;
import com.alibaba.fastjson.JSON;
import java.util.List;
public class Wrapper<T extends Object> {
private Header header;
private T body;
public Wrapper() {
}
public Wrapper(Header header) {
this(header, null);
}
public Wrapper(Header header, T body) {
this.header = header;
this.body = body;
}
private boolean serial;
public Header getHeader() {
return header;
}
public void setHeader(Header header) {
this.header = header;
}
public T getBody() {
return body;
}
public void setBody(T body) {
this.body = body;
}
/**
* 解决泛型在dubbo反序列化问题
*
* @param clazz
* @return
*/
public T getBody(Class<T> clazz) {
if (body == null || clazz == null) {
return body;
}
if (serial) {
return body;
}
String json = JSON.toJSONString(body);
body = JSON.parseObject(json, clazz);
return body;
}
/**
* 解决参数List问题
*
* @param clazz
* @param <T>
* @return
*/
public <T> List<T> parseBodyList(Class<T> clazz) {
if (body == null || clazz == null) {
return null;
}
String json = JSON.toJSONString(body);
List<T> body = JSON.parseArray(json, clazz);
return body;
}
}
package com.example.mydemo.demo;
public class Header {
private String token;
private String serialno;
public String getToken() {
return token;
}
public void setToken(String token) {
this.token = token;
}
public String getSerialno() {
return serialno;
}
public void setSerialno(String serialno) {
this.serialno = serialno;
}
}