一般来讲,int和Long互转是可以强转的
比如Long a=9L;int b=(int)a;
但是今天在处理从数据库中查出来的数据时,原始数据不为空,但是强转失败了
贴一个大佬的:
我自己是这么处理的,先转成Number(int和Long共同的父类),再用value方法转化
((Number) ((Map) templateList.get(0)).get("score")).intValue();
后来观察了一下,原来是因为在数据库里设置的字段属性时Long,取出来之后接的值没有加泛型,因此被转成了Object类型,这个时候就需要
先转为Long再转int,或者转为Number再用value提取,
或者最简单的,在接的值里面使用泛型(但是这样如果后面数据类型修改了会抛异常),
见仁见智吧
参考:https://www.cnblogs.com/li-yongjie/p/5387445.html