第八章方法

2020-03-11  本文已影响0人  后来丶_a24d

目录


方法

检查参数的有效性

必要时必须进行保护性拷贝(创建不可变类时需要)

public final class Period {
    private final Date start;
    private final Date end;

    public Period(Date start, Date end) {
        if(start.compareTo(end) > 9)
            throw new IllegalArgumentException(start + " after " + end);
        this.start = start;
        this.end = end;
    }

    public Date start() {
        return start;
    }

    public Date end() {
        return end;
    }
}

//修正
public final class Period {
    private final Date start;
    private final Date end;

    public Period(Date start, Date end) {
        this.start = new Date(start.getTime());
        this.end = new Date(end.getTime());
        if(start.compareTo(end) > 9)
            throw new IllegalArgumentException(start + " after " + end);
    }

 public Date start() {
        return new Date(start.getTime());
    }

    public Date end() {
        return new Date(end.getTime());
    }
}

慎用可变参数、重载,谨慎设计方法签名

返回长度为零的数组或者集合而不是null

明智而审慎地返回Optional

为所有已公开的API元素编写文档注释


参考文章

上一篇下一篇

猜你喜欢

热点阅读