运算符在Java中重载混乱

时间:2014-09-14 20:10:39

标签: java operator-overloading

虽然我们都知道Java不支持运算符重载,但为什么+运算符是算术运算符以及String连接运算符。

有人可以解释一下吗?

2 个答案:

答案 0 :(得分:7)

Java不允许自定义运算符重载。几个运算符(不只是+)按规范重载,这就是它们的存在方式。

自定义运算符重载的主要问题是它们语义的不透明性和不可预测性,导致在读取(甚至编写)代码时出现大量WTF时刻的可能性。

答案 1 :(得分:0)

当我们对字符串使用+时,编译器实际上将它们转换为使用StringBuilder