Java-утверждения для постусловий - PullRequest
0 голосов
/ 12 ноября 2018

Я пытаюсь узнать об утверждениях Java. У меня есть следующий метод, и я хочу добавить утверждение после условия. Я не уверен, что то, что я сделал, правильно, может кто-нибудь объяснить мне и сказать, правильно ли это, а если нет, то почему?

chain - это список блоков, составляющих цепочку, где каждый блок представлен массивом байтов.

boolean addBlock (byte[] block) {

    // Prepare for correctness check
    byte[] last = getLast();
    byte[] last_data_hash = new byte[hash_size];
    byte[] current_link_hash = new byte[hash_size];
    for (int i=0; i < hash_size; i++) {
        last_data_hash[i] = last[hash_size+i];
        current_link_hash[i] = block[i];
    }

    if (Arrays.equals(current_link_hash,last_data_hash)) {
        // if it is correctly linked, add it
        chain.add(block.clone());
        return true;
    } else // if it is not correctly linked, don't add it
        return false;

    assert (chain == null) : "chain list: " + chain ;
}

РЕДАКТИРОВАТЬ:

boolean addBlock (byte[] block) {

        // Prepare for correctness check
        byte[] last = getLast();
        byte[] last_data_hash = new byte[hash_size];
        byte[] current_link_hash = new byte[hash_size];
        for (int i=0; i < hash_size; i++) {
            last_data_hash[i] = last[hash_size+i];
            current_link_hash[i] = block[i];
        }

        if (Arrays.equals(current_link_hash,last_data_hash)) {
            // if it is correctly linked, add it
            chain.add(block.clone());
            **assert (chain == null) : "chain list: " + chain ;**
            return true;
        } else // if it is not correctly linked, don't add it
            return false;


    }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...