对象的字符串表示以可读格式包含有关对象状态的信息。
Object类的toString()
方法表示字符串中类的对象。Object
类提供了toString()
方法的默认实现。 它返回一个以下格式的字符串:
<fully qualified class name>@<hash code of object in hexadecimal>
考虑下面的代码及其输出。如是亲自执行代码可能会得到不同的输出。
public class Main{ public static void main(String[] argv){ Object obj = new Object(); String objStr = obj.toString(); System.out.println(objStr); } }
上面的代码生成以下结果。
java.lang.Object@2a139a55
以下代码显示了如何创建自己的toString方法。
public class Main{ public static void main(String[] argv){ MyClass obj = new MyClass(123); String objStr = obj.toString(); System.out.println(objStr); } } class MyClass { private int value; public MyClass(int value) { this.value = value; } public void setValue(int value) { this.value = value; } public int getValue() { return value; } /* override toString() method of the Object class */ public String toString() { // Return the stored value as a string String str = String.valueOf(this.value); return str; } }
上面的代码生成以下结果。
123
注:需要确保它被声明为
public
,它的返回类型是String
,并且它不接受任何参数。
类的toString()
方法非常重要。 当需要对象的字符串表示时,Java会自动调用toString()
方法。
有两种情况值得一提:
当连接一个字符串和一个对象时,实例调用的就是toString()
方法。
String str = "Hello" + new Point(10, 20);
Java在Point
对象上调用toString()
方法,并将返回的值并连接“Hello”
字符串。上述语句与以下语句相同:
String str = "Hello" + new Point(10, 20).toString();