Porque o método add(), da interface collections, é boolean?

Eu tava estudando collections e li que add(), é boolean, ai bateu a curiosidade e fui fazer o teste, e de fato ele retorna true ao adicionar um item a lista. Pq isso? ele n poderia ser do tipo void?

De acordo com a documentação:

Garante que esta coleção contenha o elemento especificado (operação opcional). Retorna true se esta coleção foi alterada como resultado da chamada. (Retorna false se esta coleção não permitir duplicatas e já contiver o elemento especificado.)
Coleções que suportam esta operação podem colocar limitações sobre quais elementos podem ser adicionados a essa coleção. Em particular, algumas coleções se recusam a adicionar elementos null e outras impõem restrições ao tipo de elementos que podem ser adicionados. As classes de coleção devem especificar claramente em sua documentação quaisquer restrições sobre quais elementos podem ser adicionados.

Se uma coleção se recusar a adicionar um elemento específico por qualquer motivo que não seja o que já contém o elemento, deverá lançar uma exceção (em vez de retornar false). Isso preserva a invariante de que uma coleção sempre contém o elemento especificado após o retorno dessa chamada.

Ou seja, a inclusão de um elemento em uma coleção pode ser proibido, caso haja esse elemento já registrado na coleção. Isso tem por finalidade, evitar a inclusão de elementos repetidos, por isso ela retorna se a adição ocorreu (true) ou não (false). Por exemplo, a interface Set<E> que estende de Collection<E> não permite duplicatas.

1 curtida

Mds vc responde tudo ksksk Obrigado, agora faz sentido.