java.lang.ClassCastException: cn.hutool.json.JSONObject cannot be cast toXXXX
除了网上常见解决方案以外,也存在另一种可能导致的类型转换异常。
例如:当使用JSONUtil将jsonObj转为一个泛型类,且指定转换的泛型为某一包含非String字段的对象时,会出现转换异常。
例如:
@Data
@Accessors(chain = true)
public class RedisData<E> {
private LocalDateTime expireTime;
private E data;
}
此时可以通过两次转换,解决异常:
RedisData<JSONObject> redisData = JSONUtil.toBean(jsonRes, RedisData.class);
JSONObject jsonObject = redisData.getData();
Product product = JSONUtil.toBean(jsonObject, Product.class);