Comecei a usar a @NotNullanotação com Java 8 e a obter resultados inesperados.
Eu tenho um método como este:
public List<Found> findStuff(@NotNull List<Searching> searchingList) {
... code here ...
}
Eu escrevi um teste JUnit passando o valor nulo para o argumento searchList. Eu esperava que algum tipo de erro acontecesse, mas ocorreu como se a anotação não estivesse lá. Esse comportamento é esperado? Pelo que entendi, isso foi para permitir que você pule a gravação do código de verificação nulo padrão.
Uma explicação do que exatamente o @NotNull deveria fazer seria muito apreciada.
@NotNullé apenas uma anotação. As anotações não fazem nada por si mesmas. Eles precisam de um processador de anotação no momento da compilação ou de algo que o processe no tempo de execução.