为什么java在返回类型为long或double时返回整数时不会出错?

时间:2013-02-07 10:10:46

标签: java types casting

public double delhi(Integer a)
    {
        return (int)a;
    }

如果你没有得到它,请查看方法的返回类型

2 个答案:

答案 0 :(得分:1)

因为,int可以放入double。它被称为Widening Primitive Conversion

答案 1 :(得分:1)

在方法上声明的返回类型用于在堆栈上分配内存以存储返回值。这里,通过将返回类型声明为double,编译器将分配比实际返回值所需的更多空间(64位),int(32位)。因此,(up)conversion不会丢失预期的数据。因此,无论是编译器还是运行时,都不会抱怨并且它可以工作。尝试相反,将返回类型设置为int并返回longdouble。您将收到编译器错误,因为可能存在数据损坏。