java – toString:什么时候使用?

前端之家收集整理的这篇文章主要介绍了java – toString:什么时候使用?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我上课了
class Configuration {
  // varIoUs stuff

  @Override
  public String toString() {
    // assemble outString
    return outString;
  }
}

我还有另一堂课

class Log {
  public static void d(String format,Object... d) {
    // print the format using d
  }
}

Log类工作得非常好,我一直都在使用它.现在当我这样做:

Configuration config = getConfiguration();
Log.d(config);

我得到编译器错误Log类型中的方法d(String,Object …)不适用于参数(配置).我可以解决这个问题:

Log.d("" + config);       // solution 1
Log.d(config.toString()); // solution 2

我的问题:这有什么不同?在第一个解决方案中,编译器注意到它必须连接两个字符串,但第二个是配置.所以Configuration#toString()被调用,一切都很好.在编译器错误情况下,编译器发现需要一个String,但是给出了一个Configuration.基本上是同样的问题.

>需要:字符串
>鉴于:配置

这些案例有何不同,为什么没有调用串?

解决方法

在设计语言时,有人决定当程序员使用运算符将​​任意对象附加到字符串时,他们肯定需要一个String,因此隐式调用toString()是有意义的.

但是如果你调用一个带有其他东西的String的任意方法,那只是一个类型错误,正是所有静态类型应该阻止的.

原文链接:https://www.f2er.com/java/127928.html

猜你在找的Java相关文章