java.lang.Double cannot be cast to java.lang.Integer解决办法

Integer属于不可更改类型,而且Double 和Integer没有任何继承关系,当然不能这样转换 ,我开始的代码如下:

Iterator keySetItr = param.get(pt).get(pext).iterator();
while (keySetItr.hasNext()){
            int num =(int)keySetItr.next();
            ydata.add(num.intValue());  
            if(pext.equals("syhs") ){
                double numbe=new BigDecimal((float)num/10000).setScale(2,BigDecimal.ROUND_DOWN).doubleValue();
                hszb.add(numbe);
            }
}

这是我项目中的一段代码,但是运行就错了,最后我改成了如下代码就好了:

Iterator keySetItr = param.get(pt).get(pext).iterator();
        while (keySetItr.hasNext()){
            Number num= (Number) keySetItr.next();
            ydata.add(num.intValue());
            if(pext.equals("syhs") ){
                double numbe=new BigDecimal((float)num.intValue()/10000).setScale(2, BigDecimal.ROUND_DOWN).doubleValue();
                hszb.add(numbe);
            }
        }

注:java.lang.Number是Integer,Double 的父类.

你可能感兴趣的:(java基础)