ClassCastException,将 Integer 转换为 Double
2022-08-31 21:11:02
ArrayList marks = new ArrayList();
Double sum = 0.0;
sum = ((Double)marks.get(i));
每次我尝试运行我的程序时,我都会得到一个ClassCastException,指出:java.lang.Integer不能被转换为java.lang.Double。
ArrayList marks = new ArrayList();
Double sum = 0.0;
sum = ((Double)marks.get(i));
每次我尝试运行我的程序时,我都会得到一个ClassCastException,指出:java.lang.Integer不能被转换为java.lang.Double。
我们可以将 a 转换为 a,但我们不能对包装类执行相同的操作,并且:int
double
Integer
Double
int a = 1;
Integer b = 1; // inboxing, requires Java 1.5+
double c = (double) a; // OK
Double d = (Double) b; // No way.
这将显示与运行时异常对应的编译时错误。
好吧,您显示的代码实际上不包括向中添加任何整数 - 但是如果您确实知道自己有整数,则可以使用:ArrayList
sum = (double) ((Integer) marks.get(i)).intValue();
这会将其转换为 ,然后可以将其转换为 。您不能直接在盒装类之间进行强制转换。int
double
请注意,如果您可以对 使用泛型,则代码将更清晰。ArrayList