java - Java中运算符重载的困惑

标签 java operator-overloading

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

谁能解释一下吗?

最佳答案

Java 不允许自定义运算符重载。有几个运算符(不仅仅是 +)按照规范进行了重载,这就是它们的现状。

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

关于java - Java中运算符重载的困惑,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25837543/

相关文章:

ruby - Ruby 中是否有反引号的替代语法?

c++ - 如何在 C++ 中重载 cout 行为?

c++ - 如何使用 operator== 强制发出编译器警告?

c++ - 模板化重载运算符不明确

c++ - 重载运算符时可以使用标志吗?

java - 请向我解释 "this"

java - SQLITE 随机值/带条件的行

java - 当构造函数调用私有(private)方法并返回异常时,如何初始化实例进行测试

java - java字符串中的内存管理?

java - 在 Java 中从二维数组构建图像