为什么Java可以在返回函数时自动将字节转换为大多数其他原语?



也许这是我在学习Java基础知识时忽略的东西,但是为什么下面的代码是合法的呢?

float foo(byte b) {
    return b;
}

除char和boolean外,所有基本类型都允许使用

除了char之外,所有基本类型都允许使用

和布尔。

对于布尔值是,但对于charfloat -它是允许(编辑)根据您的评论,bytechar不在列表中,并且不允许。

应该看到:5.1.2。扩展原语转换

19对基本类型的特定转换称为扩展原始转换:

  • 字节为short、int、long、float或double
  • 短到int、long、float或double
  • char转换为int、long、float或double
  • int类型为long、float或double
  • 长为float或double
  • float to double

扩展原语转换不会丢失对象的信息数值的总体大小。

最新更新