与C#中的代码合同不同,在JML中,代码合同只是在方法头部以注释形式使用的文本。那么,将它们公开为注释是否更好呢?这样,在编译信息时,即使与被擦除的注释不同,信息也会保留在.class的元数据中。我有些东西遗漏了吗?
据我所知,JML的存在早于Java注解很多年。当然,他们可以更新它以利用注解。
有一种使用Java注解的JML实验性实现:
http://sourceforge.net/apps/trac/jmlspecs/wiki/JML6
希望它能以某种形式在今年(2010年)的OpenJML中发布。