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);

...
}