size_ が 0 の場合に null を返すことを保証する事後条件を設定する必要があります。
if(size_ == 0)
return null;
どうすればjmlでそれを行うことができますか? 何か案は?以下は機能しません:
//@ ensures size_ == null ==> \return true;
前もって感謝します
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;
のドキュメントは\result
次のとおりです。
3.2.14
\result
通常の事後条件または非 void メソッドの変更ターゲット内では、特別な識別子 \result は、メソッドの戻り値の型を型とする仕様式です。メソッドによって返される値を示します。\result は、void 以外のメソッドの宣言を変更する、ensure、also_ensures、modifies、または also_modifies プラグマ内でのみ許可されます。
まず第一にsize_
、 、Object
またははどのような型primitive(int)
ですか?
次に、メソッドの戻り値の型は何ですか? Object
またはprimitive(boolean)
?
プリミティブ型を と比較したり、プリミティブ型が返されるはずの場所にnull
戻したりすることはできません。であるnull
と仮定し、戻り値が である場合、事後条件は次のようになります。size_
int
boolean
//@ ensures size_ == 0 ==> \result;