Isso é corrigido no Hamcrest 1.3. O código abaixo compila e não gera nenhum aviso:
// given
List<String> list = new ArrayList<String>();
// then
assertThat(list, is(not(empty())));
Mas se você tiver que usar uma versão mais antiga - em vez de com bug, empty()
poderá usar:
hasSize(greaterThan(0))
( import static org.hamcrest.number.OrderingComparison.greaterThan;
ou
import static org.hamcrest.Matchers.greaterThan;
)
Exemplo:
// given
List<String> list = new ArrayList<String>();
// then
assertThat(list, hasSize(greaterThan(0)));
O mais importante das soluções acima é que elas não geram avisos. A segunda solução é ainda mais útil se você deseja estimar o tamanho mínimo do resultado.