spring boot解析泛型对象

155 阅读1分钟

需求:

  • 通过websocket传递数据,如果用户是第一次进入则注册,如果是消息则进行消息的传递
@Data
@NoArgsConstructor
@AllArgsConstructor
public class SocketMessage <T>{
    private String type;
    private T info;
}

type用来区分消息类型,info就是消息主体
使用Object会报错无法强制转换,于是使用泛型
SocketMessage socketMessage = JSONObject.parseObject(msg, new TypeReference<SocketMessage<SocketRegister>>(){}); 将字符串转换为对象,msg:json,第二个参数new TypeReference<类型>{}