Если заявление с возвратом в JML
-
09-10-2019 - |
Вопрос
Мне нужно настроить сообщение, которое обеспечивает возврат NULL, если размер_ это 0. на основе
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;
3.2.14
\result
В обычном постусообразности или модификации целевой целевой методика ненужденного, специальный идентификатор результат является выражением спецификации, тип которого является возвратным типом способа. Это обозначает значение, возвращаемое методом. Результат разрешен только в пределах гарантирования, также_ensures, модифицирует или также_modifiesies Pragma, которая модифицирует декларацию нематериального метода.
Другие советы
Прежде всего: какой тип size_
, Object
или primitive(int)
?
Во-вторых, какой тип возврата метода? Object
или primitive(boolean)
?
Вы не можете сравнить примитивный тип, чтобы null
, или вернуть null
где примитивный тип должен быть возвращен. Если мы предположим size_
является int
и возврат boolean
Затем последующее состояние было бы
//@ ensures size_ == 0 ==> \result;