Contracts for Java (Cofoja) adds contract programming support to Java through simple yet powerful annotations: @Requires, @Ensures, @Invariant, and @ThrowEnsures. Contracts are inherited from interfaces and superclasses and can be enabled selectively during development then disabled for release.