Вопрос

Мне нужно настроить сообщение, которое обеспечивает возврат 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;

Вот Документация для \result:

3.2.14 \result
В обычном постусообразности или модификации целевой целевой методика ненужденного, специальный идентификатор результат является выражением спецификации, тип которого является возвратным типом способа. Это обозначает значение, возвращаемое методом. Результат разрешен только в пределах гарантирования, также_ensures, модифицирует или также_modifiesies Pragma, которая модифицирует декларацию нематериального метода.

Другие советы

Прежде всего: какой тип size_, Object или primitive(int)?

Во-вторых, какой тип возврата метода? Object или primitive(boolean)?

Вы не можете сравнить примитивный тип, чтобы null, или вернуть null где примитивный тип должен быть возвращен. Если мы предположим size_ является int и возврат boolean Затем последующее состояние было бы

//@ ensures size_ == 0 ==> \result;
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top