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