有以下方法的定义, method(byte x, double y) { return (short)x/y*2; } 则该方法的返回类型为 short 。对吗?
时间: 2024-05-17 22:13:09 浏览: 28
JVM内存模型及方法区
不对。该方法的返回类型应该为`double`。
在Java中,如果两个数中有一个是`double`类型,那么它们的运算结果也会自动转换为`double`类型。因此,在方法`method(byte x, double y)`中,表达式`(short)x/y*2`中,`(short)x/y`的结果会被自动转换为`double`类型,然后再乘以`2`,最终得到的结果也是`double`类型。
要让该方法的返回类型为`short`,可以将表达式中的`/`运算符改为整数除法运算符`/`,即`method(byte x, double y) { return (short)(x/y*2); }`。这样就可以将结果强制转换为`short`类型。
阅读全文