java.lang.Object的toString方法的实现:
public String toString() { return getClass().getName() + "@" + Integer.toHexString(hashCode()); }
这通常不是用户期望看到的,它包含类名称,一个“@”符号,以及散列码的无符号十六进制表示法。
toString通用约定指出,被返回的字符串应该是一个“简洁的,但信息丰富,并且易于阅读的表达形式”,进一步的约定指出,建议所有的子类都覆盖这个方法。
提供好的toString实现可以使类用起来更加舒适,当对象被传递给println、printf、字符串联操作符(+)以及assert或者被调试器打印出来时,toString方法会被自动调用。
提供好的toString方法,产生有用的诊断信息会非常容易:System.out.println("Failed to connect: " + phoneNumber);
toString方法应该返回对象中包含的所有值得关注的信息,如果对象很大,包含的状态信息难以用字符串表示,应该返回一个摘要信息。
在实现toString的时候,必须作出是否指定返回值的格式的决定。指定格式的好处是可以被用作一种标准的、明确的、适合人阅读的对象表示法。不足之处在于类一旦指定格式,必须始终如一地坚持这种格式。程序员将编写代码来解析这种字符串,如果将来改变了格式,他们的代码就无法正常运行了。总的来说不指定格式保留了灵活性。
两个建议:
1.无论是否决定指定格式,都应该在文档中明确地表明意图,通过文档注释来说明。
2.无论是否指定格式,都为toString返回值中包含的所有信息,提供一种编程式的访问途径,如使用getter方法提供。否则程序员必须去解析字符串,而这会导致大量不必要的工作量和增加程序出错的可能性。
相关推荐
1. **覆盖toString()** 当你创建一个自定义类时,如果希望打印出类实例的属性值,需要在类中重写`toString()`。通常,这会涉及到遍历所有实例变量,并将它们的值转换成字符串,然后用逗号分隔。例如: ```java ...
这可能是一个详细的代码示例,解释如何使用`radix`来格式化数字字符串,或者展示了在自定义对象中正确覆盖`toString`方法的最佳实践。 总的来说,通过深入理解并熟练运用`toString`方法,开发者可以更好地控制和...
对于自定义类型,这可能不是很有用,所以通常建议在自定义类型中覆盖`ToString()`。 3. **格式化输出** `ToString()`方法还可以接受一个格式字符串参数,允许你控制输出的格式。例如,`DateTime`类型的`ToString()...
generate a toString() with a json format select single or multiple java class file, click toString via rightKey, ... 如果toString()方法已存在,则直接覆盖 by qq963577663 wangjinwen 2018-06-17
这可以通过在自定义对象中定义一个覆盖默认toString()方法的新方法来实现。 接下来,我们通过一段示例代码来进一步说明toString()方法的使用: ```javascript function Book(title, publisher, price) { this....
在重写`ToString()`方法时,你需要使用`override`关键字来指定你是在覆盖基类的方法,并且返回类型必须是`string`。下面是如何在`Person`类中重写`ToString()`的示例: ```csharp public class Person { public ...
要求覆盖基类Object中的ToString()方法和Equals()方法,使得直接输出Student对象时输出的是对象的id,name和age信息;并且当两个对象的学号相同时认为它们相等; 然后写一个主方法测试以上定义。
这两种方法都是利用了JavaScript的动态类型特性和`valueOf`与`toString`的覆盖特性,实现了高阶函数的连续调用,并在需要的时候提供计算结果。 在上面的例子中,`temp.valueOf`和`temp.toString`被赋值为同一个函数...
例如,`Object`类中的`toString()`和`equals()`方法经常被子类覆盖来提供定制的行为。同时,`equals()`和`==`的区别在于,未覆盖`equals()`时,它们比较的是对象的引用,而覆盖后,通常比较的是对象的内容。 **重载...
为了控制和强制执行`toString()`方法,从而避免这些错误,我们可以覆盖对象原型中的`valueOf`方法。这样,当JavaScript引擎尝试将对象转换为基本类型值以执行运算时,会按照我们定义的逻辑来执行。 默认情况下,`...
在JavaScript中,`valueOf`和`toString`是两个非常重要的内置方法,它们分别用于将对象转换为原始值和字符串。...在自定义对象时,如果需要覆盖默认的行为,务必了解并遵循这些调用规则,以确保代码的正确性和一致性。
在某些情况下,开发者可能会覆盖`toString`方法以提供自定义的字符串表示。 总的来说,`Object.prototype.toString`是JavaScript中一个强大且灵活的方法,它在处理类型检测、对象表示以及自定义输出方面都有广泛的...
洁净递归删除对象上的保留键,如 hasOwnProperty、toString 等安装 npm install... 但是,因为toString被覆盖为字符串,所以现在调用toString是错误的,因为它不再可调用。 运行此代码会导致: TypeError: Cannot conve
第一个图层线要素应被第二个线图层线要素覆盖.ToString()`。 除了线要素的规则外,还有针对面要素的规则: 1. **面要素之间无空隙 (esriTRTAreaNoGaps)**:此规则确保相邻的面之间无缝隙,即面的边界应当连续。...
然而,对于大多数实际用途,这种默认的表示往往不够具体,因此我们常常需要在子类中覆盖`toString()`方法,以提供更有意义的信息,比如对象属性的值。 `hashCode()`方法是另一个重要的`Object`类方法。它返回对象的...
### Java学习第十三章——方法覆盖和多态 #### 一、方法覆盖(重写 —— Override) **1.1 回顾方法重载** 在Java中,**方法重载**(Overloading)指的是在一个类中定义多个同名方法,但这些方法的参数列表必须有所...
3. 覆盖toString和valueOf方法:当需要自定义枚举常量的字符串表示或反向转换时,可以覆盖这两个方法。例如,上面的例子中,覆盖toString方法使得输出不再是简单的名称,而是带有枚举类名的全限定字符串。 4. 构造...
枚举中的方法可以被覆盖,比如覆盖`toString()`方法。在`Color`枚举中,`toString()`被重写为返回`index_name`格式的字符串,增强了信息的表示。 5. 实现接口: 虽然Java不支持多重继承,但枚举可以实现接口。`...
1. 要配置的包名前后可以加上 `**`,例如 `**.bean.**`,表示无论有多少层包,只要包含 "bean",都将被纳入统计。 2. 对于一个特定的包,通常需要创建两个规则,如 `**.bean.`, `**.bean*.**`,分别匹配包含 "bean...