0

这是对我之前的问题的跟进(我没有得到任何回应)。就这样吧。

如果我严格遵守 JLS 第 5.2 节中规定的规则,则以下内容应该失败。

Byte b = 2;

它应该失败,因为这里正在进行 2 次转换。首先是从 int 到 byte 的隐式缩小转换以及从自动装箱到 Byte 的转换。它在这里执行 2 转换。

那么为什么没有失败呢?

JLS 第 5.2 节规定的规则不允许在这里进行 2 转换。

4

1 回答 1

3

这是来自同一 JLS 部分的引用:

如果变量的类型为:

  • 字节和常量表达式的值可以用字节类型表示。

这显然适用于此。

于 2013-08-13T14:26:28.800 回答