繁体   English   中英

为什么当返回类型为long或double时,java在返回整数时不给出错误?

[英]Why java do not give error on returning an integer while the return type is long or double?

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

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

因为,一个int可以容纳一个double。 其称为扩展原始转换

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM