- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
类方法的 JML 后置条件是否可以包含对另一个方法调用的调用
例如我有这个类:
public class A
{
public int doA(x)
{ ... }
public int doB(int x, int y)
{ ... }
}
对于 doB 的后置条件,我可以:确保 doA(x) = doA(y)
?
最佳答案
是的,前提是调用的方法不包含副作用并且声明为纯方法:
The /@ pure @/ comment indicates that peek() is a pure method. A pure method is one that doesn't have side effects. JML only allows assertions to use pure methods. We declare peek() to be pure so it can be used in the postcondition of pop(). If JML allowed non-pure methods in assertions then we could inadvertently write specifications that had side effects. This could result in code that works when compiled with assertion checking enabled but doesn't work when assertion checking is disabled.
http://www.ibm.com/developerworks/java/library/j-jml/index.html
public class A
{
public /*@ pure @*/ int doA(int x)
{ ... }
//@ requires ...
//@ ensures doA(x) == doA(y)
public int doB(int x, int y)
{ ... }
}
关于java - JML 后置条件包含类方法调用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13602989/
我有一个 JML 问题。有什么区别 /*@ invariant array_ != null; */ 并将其声明为 protected /*@ non_null */ Object[] array_;
我正在寻找 Java 的替代规范语言选项,例如 JML。 有人知道吗? 谢谢。 最佳答案 Contracts for Java ( http://code.google.com/p/cofoja/)
我想在 JML 中执行此操作: //@ requires (\forall int i : array[i] = 0 && i (array[i] = 0 && i = 0 && i < array
我正在寻找一个用 Java 编写的能够读取 JML 的解析器。 基本上我希望解析器能够读取 JML block 并知道它属于哪个方法。 我一直在看 OpenJML 项目,但只是项目设置太多了。 最佳答
类方法的 JML 后置条件是否可以包含对另一个方法调用的调用 例如我有这个类: public class A { public int doA(x) { ... } publi
我需要设置一个后置条件,确保在 size_ 为 0 时返回 null。基于 if(size_ == 0) return null; 我怎样才能在 jml 中做到这一点?有任何想法吗?以下不起作用
我正在使用 Eclipse 进行 Java 编程。我尝试从 this site 安装尽管 Eclipse 的更新程序没有引发任何错误,但我没有看到他们说我应该看到的菜单。 也许我必须先安装一些东西?也
我想知道如何评估 \old(Expression[Id]) 形式的 JML 表达式,即如果我有 \old(vector[value-1] ) 表达式中,\old 是否也引用“value”或仅引用 ve
与 C# 中的代码约定相反,在 JML 中,代码约定只是在方法 header 中以注释形式使用的文本。那么,将它们作为注释公开不是更好吗?这样即使在编译时信息也会保留在 .class 的元数据中,与注
我正在使用java开发一个简单的msn客户端,但我不知道如何使用JML库设置http代理参数。显然它不是库本地的 =/ 最佳答案 只是一个想法:您可以依靠操作系统来配置代理。有一些提示涵盖了您的各种选
我们如何将 JML 应用于 Java 代码?我对契约(Contract)设计还是个新手,完全不知道如何将其应用到程序中。 http://jmlspecs.sourceforge.net/ 使用: Op
我正在尝试根据来自 Oracle 的文档创建 Web 服务器应用程序:https://docs.oracle.com/cd/B28359_01/text.111/b28303/acase.htm#CI
我是一名优秀的程序员,十分优秀!