我有一个方法,接受对象作为输入,如果输入是Long的实例,则将值转换为double类型。以下是代码:
public static void main(String[] args) {
Long longInstance = new Long(15);
Object value = longInstance;
convertDouble(value);
}
static double convertDouble(Object longValue){
double valueTwo = (double)longValue;
System.out.println(valueTwo);
return valueTwo;
}
但是当我执行上述代码时,我收到以下异常:
Exception in thread "main" java.lang.ClassCastException: java.lang.Long cannot be cast to java.lang.Double
at com.datatypes.LongTest.convertDouble(LongTest.java:12)
at com.datatypes.LongTest.main(LongTest.java:8)
请告诉我为什么会出现异常。
但是如果直接将Long对象转换为double,则不会出现ClassCast异常。
Long longInstance = new Long(15);
double valueOne = (double)longInstance;
System.out.println(valueOne);
这很令人困惑。
((Long) longValue).doubleValue()
- SacJn