【问题标题】:overload final string is possible? [closed]重载最终字符串是可能的吗? [关闭]
【发布时间】:2012-10-15 02:07:17
【问题描述】:

我创建了一个有2个方法的类,一个可以带3个参数,另一个可以带4个..所有参数声明为final..

然后我写了这个

    if (b == "Select") {
        myobj.print(a, b, c, d);
    } else {
        myobj.print(a, b, c);
    }

它不起作用..

【问题讨论】:

  • 首先:您使用的是==,而不是.equals("Select")。其次,您能否再澄清一下您的问题?您不能重载 String 类 - 它是最终的。你想达到什么目的? myobj 是什么? myobj.print 的签名是什么?
  • 使用“Select”.equals(b) 代替 ==。查看 Java 字符串池的此参考:stackoverflow.com/questions/1881922/…

标签: java overloading


【解决方案1】:

String 是不可变的,您无法更改它们。

除非您使用 String 文字,否则您应该始终使用 .equals().equalsIgnoreCase() 而不是 == 来比较 Strings/objects

【讨论】:

    【解决方案2】:

    是的,带有额外字符串参数的方法的重载是:

    • 可能,
    • 有效的 Java,并且
    • 有效。

    我的钱是基于你的问题与重载无关的理论,实际上是由于你错误地使用== 来测试两个字符串是否相等。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-02-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-08-04
      • 2012-11-06
      相关资源
      最近更新 更多