-1

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

float foo(byte b) {
    return b;
}

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

4

1 回答 1

3

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

对于布尔值 YES,但对于charto float- 是允许的。(编辑)根据您的评论,byteto char不在列表中且不允许。

你应该看到:5.1.2。扩大基元转换

原始类型的 19 种特定转换称为扩展原始类型转换:

  • 字节到 short、int、long、float 或 double
  • 短到 int、long、float 或 double
  • char 到 int、long、float 或 double
  • int 到 long、float 或 double
  • 长时间浮动或加倍
  • 浮动加倍

加宽基元转换不会丢失有关数值整体大小的信息。

于 2013-05-17T06:36:56.263 回答