zoukankan      html  css  js  c++  java
  • redis中是没有Long类型的

    redis中没有Long类型,存储进去后取出来会是Interger类型。需要自行转化,不可直接强转。否则将CCE。 本人在处理springboot的redisTemplate封装时发生了这个异常。解决方案如下

    private <T> T getObject(String key, Class<T> clazz, boolean updateLive, long timeout, TimeUnit unit) {
        Assert.notNull(key, "查询key值不能为null");
        if (isExist(key)) {
            Object valueObj = redisTemplate.opsForValue().get(key);
            if (updateLive) {
                redisTemplate.expire(key, timeout, unit);
            }
            if (clazz.isInstance(valueObj)) {
                return (T) valueObj;
            } else if (clazz == Long.class && valueObj instanceof Integer) {
                Integer obj = (Integer) valueObj;
                return (T) Long.valueOf(obj.longValue());
            } else {
                logger.warn("object type is " + valueObj.getClass().getName() + ", which can not cast to "
                        + clazz.getName());
            }
        }
        return null;
    }
  • 相关阅读:
    类加载器
    会话机制
    数据库读写分离
    代码优化工具
    杀毒软件框架设计
    树状结构
    spring依赖注入
    never stop believe yourself
    利用callKit实现电话防骚扰
    mac上使用使用rz,sz命令
  • 原文地址:https://www.cnblogs.com/exmyth/p/15661441.html
Copyright © 2011-2022 走看看