【问题标题】:If Java has no operator overloading how is "string1" + "string2" possible? [duplicate]如果 Java 没有运算符重载,“string1”+“string2”怎么可能? [复制]
【发布时间】:2015-12-17 12:42:54
【问题描述】:

This question 声明 Java 没有运算符重载。对此的回答表明"a" + "b" 是可能的,即使这看起来真的像一个重载的+。我的问题很简单:如果+ 只能对数字求和并且不能重载,那么"a" + "b" (string + string) 怎么可能工作?

【问题讨论】:

  • 因为这就是 Java 创造者创造语言的方式......你无法复制同样的行为
  • @Michael 你看到的很多东西都是你可以自己实现的语言,所以我想知道如果不是其他人,我怎么能实现这个重载
  • 没有编程运算符重载。但有些运算符的定义有双重含义:+ 用于加法,+ 用于字符串连接,^,|,& 用于按位运算以及逻辑运算。
  • 遗憾的是(或者也许,如果你讨厌运算符重载:很高兴),你不能。这是@Caridorc 语言的内置功能
  • @RealSkeptic 但有些运算符的定义具有双重含义,如果不重载,这似乎是不可能的,或者您可能告诉我运算符不能重载,字符串的任意例外+ 字符串和 ^ & |对于逻辑和按位?

标签: java string operator-overloading string-concatenation


【解决方案1】:

根据JavaDoc

Java 语言为字符串连接运算符 ( + ) 以及将其他对象转换为字符串提供了特殊支持。字符串连接是通过 StringBuilder(或 StringBuffer)类及其 append 方法实现的。字符串转换是通过 toString 方法实现的,由 Object 定义并由 Java 中的所有类继承。

【讨论】:

    猜你喜欢
    • 2014-09-09
    • 1970-01-01
    • 1970-01-01
    • 2018-02-25
    • 1970-01-01
    • 1970-01-01
    • 2011-02-07
    • 2014-10-08
    • 1970-01-01
    相关资源
    最近更新 更多