String的toString()方法有任何实际用途吗?

19 java string tostring

我正在阅读文档并注意到它.永远不会想象它.说明:

这个对象(已经是一个字符串!)本身就返回了.

除了填充约定或使用计算资源之外,.toString()Java String中使用String自身的内容不会做什么?为什么不简单地继承.toString()java.lang.Object

编辑:

我知道在多态的情况下,toString()必须存在自己的方法,因为它覆盖了它的父类toString().我想在第一个问题中想知道的是,在使用stringVariable/ "String value"和使用stringVariable.toString()/ 之间是否存在任何不同的情况"String value".toString().

防爆.gr.:输出操作System.out.println(stringVariable.toString());或类似值的赋值stringVariable = "String value".toString();.

Jon*_*eet 39

除了填充约定或使用计算资源之外,Java中的.toString()对使用String本身的String不会做什么?

这意味着它在多态调用时会给出适当的结果.

为什么不直接从类java.lang.Object继承.toString()?

因为这不会产生相同的结果,几乎肯定不会产生预期的结果.

Object.toString()用于给出对象的合理有用的字符串表示.该Object实现提供了有关可用于粗略身份提示的类型和值的信息(在诊断上有用,但这就是全部).这显然不是字符串最有用的字符串表示形式 - 字符串本身就是.

虽然我说这是一种愚蠢toString的定义(不清楚结果是否适用于机器,开发人员或用户消费),但我觉得a String会在实现中返回.

  • @ user985358:Trevor,你最近没有接受过这个答案以及其他人的答案.这个答案或其他问题是否有问题,或者你有其他理由不接受这么多答案? (7认同)
  • 有效的Java第10项讨论了避免完全指定`toString()`的一些原因:因为有人会不可避免地决定解析它是个好主意. (5认同)
  • @TrevorTrovalds:文档是否已经回答了这个问题?它返回“这个对象”-所以不,在任何情况下,使用foo和foo.toString()都会得到不同的结果,其中foo是对String的非空引用。 (2认同)
  • @TrevorTrovalds:嗯,是的 - 虽然我*不会*用于此目的. (2认同)