Java 的一元加号运算符似乎是通过 C++ 从 C 中继承而来的。
int result = +1;
它似乎具有以下效果:
- 如果它是包装器对象,则将其操作数拆箱
- 将其操作数提升为
int
,如果它还不是一个int
或更宽的 - 使包含大量连续加号的邪恶表达式的解析稍微复杂化
在我看来,有更好/更清晰的方法来做所有这些事情。
在这个 SO question中,关于 C# 中的对应运算符,有人说“如果你觉得需要,它就会被重载”。
但是,在 Java 中,不能重载任何运算符。那么这个一元加号运算符是否存在于 Java 中只是因为它存在于 C++ 中?