Effective Java之总是要改写toString

来源:互联网 发布:怎样学好plc编程 编辑:程序博客网 时间:2024/05/17 02:24

Object的toString方法

虽然Object提供了toString方法的一个实现,但是,它返回的内容并不是类的用户所期待的,比如,我们定义类,

public class Point {    private int x;    private int y;    public Point(int x, int y) {        super();        this.x = x;        this.y = y;    }    public static void main(String[] args) {        Point point = new Point(2, 3);        System.out.println(point);    }}

运行,我们可以看到,结果是

Point@659e0bfd

这个结果并不是我们需要的,因为这并没有直观的代表了point的信息,这是因为,Object的toString方法,返回的是类名和实例散列值的无符号16进制表示。

如何改写

toString的约定指出,返回的字符串应该是一个“简洁的,但信息丰富,并且易于阅读的表达形式”。
虽然遵守toString约定并不像遵守equals和hasdCode那么重要,但是,提供一个好的toString,可以使一个类使用起来更加愉快。

实际应用中,toString应该返回对象中包含的所有令人感兴趣的内容。比如,Point类,我们感兴趣的是其x和y的值,那么我们可以这样改写toString方法,

    public String toString() {        // TODO Auto-generated method stub        return "Point x: " + this.x + ";y: " + this.y;    }

然后在代码中,我们就可以得到我们期望得到的内容。

Point x: 2;y: 3

0 0
原创粉丝点击