Java 的一元加号运算符似乎是通过 C++ 从 C 中继承而来的。
int result = +1;
它似乎有以下效果:
- 如果是包装对象,则将其操作数拆箱
- 将其操作数提升为
int
,如果它还不是int
或更宽 - 对包含大量连续加号的恶意表达式的解析略微复杂
在我看来,有更好/更清晰的方法来做所有这些事情。
在 this SO question ,关于 C# 中的对应运算符,有人说“如果你觉得需要,它就会被重载”。
然而,在 Java 中,不能重载 any 运算符。那么这个一元加号运算符是否存在于 Java 中只是因为它存在于 C++ 中?
最佳答案
一元加号运算符在其操作数的类型为byte
、char
或short时自动转换为
。这称为一元数字提升,它使您能够执行以下操作:int
char c = 'c';
int i = +c;
关于java - Java的一元加号运算符的目的是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2624410/