请教大神,这个是注入的数据类型错了吗? 15C

如题:我用sql查数据,查出来后,在代码那里,死活来了个long类型不能注入到integer类型,我知道的办法都用了,哪位大神帮忙看下

这条sql,

select type, count(*) from lzh_member_discuz_logs group by type;

这是数据库结果

图片说明

    public DiscuzLogsDTO selectForfum() {
        List<Map<Integer, Integer>> list = discuzLogsDAO.selectForumPosts();
        DiscuzLogsDTO discuzLogsDTO = new DiscuzLogsDTO();
        for (Map<Integer, Integer> map2 : list) {
            if (map2.get("type") == 1) {
                logger.info("sendPosts :  {}",map2.get("count(*)"));
                System.out.println("1");
                《问题在这,debug走到这里,会报错,long不能注入到integer》
                Integer integer = map2.get("count(*)").intValue();
                System.out.println("2");
                discuzLogsDTO.setSendPosts(integer);
                System.out.println("3");
            }
            if (map2.get("type") == 2) {
                logger.info("backPosts :  {}",map2.get("count(*)"));
                discuzLogsDTO.setBackPosts(map2.get("count(*)").intValue());
            }
        }
        return discuzLogsDTO;
    }

求助~~

8个回答

把intValue()去掉也报错吗?看代码,你的map2 的key明明是Integer类型。但是为什么你map2取值get的时候怎么成了String型?

weixin_38221608
buyax 我也在奇怪...,其他取不出来啊...logger.info 能打印出值的,
大约 3 年之前 回复

你代码里面map2的key和value的类型都是Integer,而调用了map2.get(字符串)方法,改为map2.get(0)或map2.get(1)

weixin_38221608
buyax 哥们 这个是取不到的, 你都没东西映射他
大约 3 年之前 回复

map2.get("count(*)").intValue() 的值应该是Long类型的
List> 改为 List> 试试,

weixin_38221608
buyax 你这个应该被网站自动转义了吧...
大约 3 年之前 回复

Long integer = map2.get("count(*)").intValue();

weixin_38221608
buyax .intValue();本身就是把long转换成int, 这个map2.get(("count(*)"),他就是一个long类型的,我就是要把他换成integer
大约 3 年之前 回复

(map2.get("type"))你这个map的key不是字符串吗? 你存储的时候不能使用 Map吗?

FluxMode
FluxMode "map<String,String>"
大约 3 年之前 回复
/**
     * Returns the value of this {@code Long} as an {@code int} after
     * a narrowing primitive conversion.
     * @jls 5.1.3 Narrowing Primitive Conversions
     */
    public int intValue() {
        return (int)value;
    }
//这是intValue()的源码,你直接使用强制转换类型试试,不行应该是其他问题不是这里错了,你应该把报错的记录截图发出来,这样才能看得更具体一点
weixin_38221608
buyax 解决啦 ,谢谢
大约 3 年之前 回复

问题解决了 , 谢谢大家 我是换了个玩法,感觉还是resultMap比resultType 的多...直接数据库跟对象映射...

Integer i = new Long(map2.get("count(*)")).intValue();
原始类型不能转换的

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问
相关内容推荐