Google宣布 了一个新的开源 Java 工具 Contracts for Java,基于 Johannes Rieken 制作的 Modern Jass,灵感来自 Eiffel 编程语言,由两名 Google 工程师 David Morgan 和 Andreas Leitner 利用自己的20%时间制作。
Contracts for Java 可让你对代码进行注释来约束代码的先决条件、后置条件和不变量,示例代码:
interface Time { ... @Ensures({ "result >= 0", "result <= 23" }) int getHour(); @Requires({ "h >= 0", "h <= 23" }) @Ensures("getHour() == h") void setHour(int h); ... }