【发布时间】:2010-04-12 18:32:40
【问题描述】:
Java 的一元加号运算符似乎是通过 C++ 从 C 中继承而来的。
int result = +1;
它似乎有以下效果:
- 如果它是包装对象,则将其操作数拆箱
- 将其操作数提升为
int(如果它还不是int或更宽) - 包含大量连续加号的恶意表达式的解析稍微复杂
在我看来,有更好/更清晰的方法来做所有这些事情。
this SO question 中,关于 C# 中的对应运算符,有人说“如果你觉得需要,它就会被重载”。
然而,在 Java 中,不能重载 any 运算符。那么这个一元加号运算符是否存在于 Java 中只是因为它存在于 C++ 中?
【问题讨论】:
-
代码混淆竞赛...SCJP 考试...
-
C 的类似问题,也没有重载:stackoverflow.com/questions/6637005/…,类似于 Java 的类型提升。
标签: java language-history unary-operator