没有编译错误,因为
+它是有效的(尽管相当无用) 一元运算符 ,其使用方式与以下方式相同
-:
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节)。
简而言之,这意味着
- 数字原始包装器类型是未 装箱的 ,并且;
- 小于的整数类型
int
将 扩展 为int
。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)