我在运行时遇到问题来编译这段代码,这向我抛出了一个错误,即 java.lang.Integer 无法转换为 Java.lang.Double。如果有人帮我更正此代码,我会非常高兴
double x;
public Double getMethod() {
HashMap hashmap= new HashMap();
hashmap = SumCal();
List listabc = (List) hashmap.get("abclist");
int total=(Integer) hashmap.get("all_total");
x = (Double) listabc.get(0)*100/total;
return x;
}
最佳答案
您可以按照以下方式进行,但我建议您使用 Generics 。
x = ((Integer) listabc.get(0) * 100 / total);
如果您使用了下面的泛型,则不需要任何转换。
List<Integer> listabc
HashMap<String, Integer> hashmap
x = listabc.get(0) * 100 / total;
在这种情况下,您不需要任何类型转换。引入 Integer、Double 等包装类的原因之一是为了避免强制转换。
关于java.lang.ClassCastException : java. lang.Integer 不能转换为 java.lang.Double,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/15036340/