编程语言
首页 > 编程语言> > java-如果JML中带有return的if语句

java-如果JML中带有return的if语句

作者:互联网

我需要设置一个后置条件,以确保如果size_为0,则返回null.

 if(size_ == 0)
  return null;

我如何在JML中做到这一点?有任何想法吗?以下操作无效:

//@ ensures size_ == null ==> \return true;

提前致谢

解决方法:

尝试

//@ ensures size_ == null ==> \result == true;

例:

//@ ensures size_ == null ==> \result == true;
public boolean sizeUndefined() {
    if (size_ == null)
        return true;

    return size_.length() > 0;
}

您也可以像这样简单地编写它:

//@ ensures size_ == null ==> \result;

这是the documentation for \result

3.2.14 \result
Within a normal postcondition or a modification target of a non-void method, the special identifier \result is a specification expression whose type is the return type of the method. It denotes the value returned by the method. \result is allowed only within an ensures, also_ensures, modifies, or also_modifies pragma that modifies the declaration of a non-void method.

标签:if-statement,return-value,annotations,java,jml
来源: https://codeday.me/bug/20191023/1914752.html