Uznałem za niedogodne, że warunek checkNotNull()
w guava nie jest oznaczony adnotacją @Nonull
. Rozważmy następujący przykład:Dlaczego checkNotNull() nie ma adnotacji @Nonnull
State(Set<Model> models, Set<Variation> variations) {
this.models = checkNotNull(models);
this.variations = checkNotNull(variations);
if (this.variations == null) {
throw new IllegalArgumentException();
}
this.engine = createEngine();
}
Więc IDE nie mógł znaleźć że variations == null
jest zawsze fałszywe. Czy są jakieś szczególne powody, dla których ten warunek wstępny nie jest oznaczony jako @Nonull
(nawet jeśli jego argumenty są zdefiniowane przy użyciu @Nullable
).
Może mi brakować opcji wysłania PR dla strony wiki GitHub, ponieważ sam bym coś takiego napisał. Ale skoro nie mogę, ktoś może dodać przynajmniej sentende takie jak "Guava używa tylko @Nullable wewnętrznie, więc wszystkie typy zwracane są wzięte, ale nie oznaczone @Nonull" (lub podobne): https://github.com/google/ guice/wiki/UseNullable – eckes