このコードに注意してください:
public Period(Date start, Date end) {
this.start = new Date(start.getTime());
this.end = new Date(end.getTime());
if (this.start.compareTo(this.end) > 0)
throw new IllegalArgumentException(start +" after "+ end);
}
compareTo()
可変パラメーターをコンストラクターに防御的にコピーする前に、パラメーターの有効性のチェック(つまり、の呼び出し)が行われた場合、それがどのように重要かわかりませんか?