运算符在Java中重载

问题

请问你是否有可能在Java中重载运算符?如果在Java中的任何地方使用它,请告诉我有关它的信息。


#1 热门回答(199 赞)

不,Java不支持用户定义的运算符重载。接近"自定义"运算符重载的Java的唯一方面是对字符串的处理,这会导致常量的编译时连接或使用StringBuilder / StringBuffer的执行时连接。你无法定义自己的操作符,但操作方式相同。

对于支持运算符重载的类Java(和基于JVM)语言,你可以查看Groovy。或者,你可能会发现aJava compiler plugin solution的运气。


#2 热门回答(32 赞)

运算符重载在Java中用于串联类型的串联:

String concat = "one" + "two";

但是,you不能定义你自己的运算符重载。


#3 热门回答(21 赞)

除了指出+为Strings重载的所有人之外,-还为浮点和整数运算重载,如*/

[编辑] %也为浮点重载,这对于具有C或C背景的人来说可能有点意外。