Javadoc dla Preconditions z państw biblioteki Guava Google, że:Dlaczego nie należy używać Objects.requireNonNull(), jeśli używane jest com.google.common z Guava?
Projekty wykorzystujące
com.google.common
powinna generalnie unikać stosowania Objects.requireNonNull(Object). Zamiast tego użyj tego, co odpowiada checkNotNull(Object) lub Verify.verifyNotNull(Object), które jest odpowiednie dla sytuacji. (To samo dotyczy przeciążania wiadomości.)
Jaka jest motywacja tego zalecenia? Nie mogę znaleźć żadnego w Javadoc.
Mam na myśli, że robią prawie to samo iw tych przypadkach zwykle lepiej jest używać standardowego interfejsu API (na przykład ludzie odpowiedzialni za Joda-Time zalecają teraz użytkownikom korzystanie z java.time
, co powoduje ich deprecjonowanie; struktura).
Jako przykład, te dwa rzędy walidacji wejścia zrobić to samo:
class PreconditionsExample {
private String string;
public PreconditionsExample(String string) {
this.string = Objects.requireNonNull(string, "string must not be null");
this.string = Preconditions.checkNotNull(string, "string must not be null");
}
}
Ah, widzę! Byłbym skłonny krótko o tym wspomnieć w Javadocs. Rozumiem, ale wydaje mi się, że możesz poprawić swoją odpowiedź jeszcze bardziej, dodając przykład, w którym 'Objects.requireNonNull()' nie jest wystarczający. – Magnilex