gpt4 book ai didi

java - 将对象(double 类型)转换为 int

转载 作者:搜寻专家 更新时间:2023-11-01 01:51:42 24 4
gpt4 key购买 nike

好的,如果我有这段代码

double a=1.5;
int b=(int)a;
System.out.println(b);

一切正常,但是

Object a=1.5;
int b=(int)a;
System.out.println(b);

运行后报如下错误(Eclipse不报错)

java.lang.ClassCastException: java.lang.Double cannot be cast to java.lang.Integer

不过,当我这样做的时候

Object a=1.5;
double b=(double)a;
int c=(int)b;
System.out.println(c);

Object a=1.5;
int b=(int)(double)a;
System.out.println(b);

又没问题了。

为什么必须先将其转换为 double

最佳答案

当您声明对象 Object a = 1.5 时,您可以通过检查 System.out.println(a.getClass()) 来判断该对象实际上是强制转换的到 Double 实例。由于拆箱约定,这可以再次转换为 double。之后,double 值可以转换为 int

但是,没有从 Double 实例转换为 int 的拆箱约定,因此如果您尝试这样做,运行时将发出 ClassCastException。它不能直接从 DoubleInteger

关于java - 将对象(double 类型)转换为 int,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27459780/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com