为什么= +不会导致编译错误?

为什么= +不会导致编译错误?,第1张

为什么= +不会导致编译错误?

没有编译错误,因为

+
它是有效的(尽管相当无用) 一元运算符 ,其使用方式与以下方式相同
-

int x = +1;int y = -1;

Java语言规范中的相关部分是Unary
Plus运算符+(第15.15.3节)
。它指定调用一元

+
运算会导致 *** 作数的一元数值提升(第5.6.1节)。这意味着:

*如果 *** 作数是编译时类型

Byte
Short
Character
,或
Integer
,将其进行取消装箱转换(§5.1.8)。然后,
int
通过扩展原始转换(第5.1.2节)或身份转换(第5.1.1节),将结果提升为类型值。

*否则,如果 *** 作数是编译时类型的

Long
Float
或者
Double
,对它进行解包转换(§5.1.8)。

*否则,如果 *** 作数是,或的编译时类型

byte
,则通过扩展原语转换(第5.1.2节)将其提升为类型的值。
short``char``int

  • 否则,一元数值 *** 作数将保持不变,并且不会被转换。

无论如何,都将应用值集转换(第5.1.13节)。

简而言之,这意味着

  1. 数字原始包装器类型是未 装箱的 ,并且;
  2. 小于的整数类型
    int
    扩展
    int


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5133704.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-11-17
下一篇 2022-11-17

发表评论

登录后才能评论

评论列表(0条)

保存