Javaで実践する契約プログラミング(Design By Contract/DbC)

一般的な契約プログラミングについてはWikipediaに記載がありますが、簡単に言うと、クライアント(メソッドのユーザ)とサプライヤー(メソッドの提供者)がそれぞれ守るべきことを定めるというものです。 あるメソッドを呼び出すときに、クライアント側は事前条件に定められたことを守り、サプライヤー側は事前条件が満たされているときに不変条件・事後条件が満たされていることを保証をします。 この方式を「具体的にJavaで実装するとこうなる」というものをまとめてみました。