【发布时间】:2015-02-16 11:30:06
【问题描述】:
我最近开始阅读按合同设计的设计方法,但我不了解它的某些方面。在 javadoc 风格的注释中使用 @pre 等时,这些标签除了作为文档之外还有什么用途?编译器是否在执行之前使用这些检查参数,或者这些只是指示方法中应该进行什么样的检查?例如如果我有一个 getAge 方法;
/**
* @pre age >= 0 #CustomAgeException
*/
public int getAge() throws CustomAgeException{
return age;
}
这是否会导致在运行该方法之前在运行时进行检查,编译器是否会对此进行检查,或者这是否只是向开发人员说明在调用此方法之前年龄必须等于或大于 0,并且应该执行检查在 getAge 内?
【问题讨论】: