Element oznaczony @Nullable
twierdzi, że wartość pusta jest całkowicie poprawna, aby zwrócić (dla metod), przejść do (dla parametrów) i przytrzymaj (dla zmiennych lokalnych i pól).
Element oznaczony @NotNull
twierdzi, że zabronione jest zwracanie wartości pustej (dla metod), przekazywanie do (dla parametrów) i przytrzymanie (dla zmiennych lokalnych i pól).
Istnieje relacja kowariancji-kowariancji między @Nullable
i @NotNull
podczas przesłaniania/implementacji metod z adnotacjami deklaracji lub parametrów.
Zastępowanie/metod z adnotacjami deklaracji wykonawcze:
@NotNull
adnotacja metody dominującej wymaga
@NotNull
adnotacji dla metody klasy dziecko.
- Metody z
@Nullable
przypisaniem w sposobie macierzystego może mieć albo @Nullable
lub @NotNull
adnotacje klasy dziecko metody.
Zastępowanie/metod realizacji dodając opisane parametry:
@Nullable
adnotacji parametrem sposobu macierzystego wymaga @Nullable
Adnotacja metoda klasy dziecko parametru.
- Metody z
@NotNull
adnotacji parametrem sposobu dominująca może mieć albo @Nullable
lub @NotNull
opisów (lub brak z nich) parametru metoda klasy dziecko.
przykład:
@Nullable
public static UserContext getThreadUserContext() {
TransactionParms tp = TransactionParms.getBoundParms();
return (tp == null) ? null : tp.getUserContext();
}
tutaj getThreadUserContext
metoda musi zwrócić wystąpienie TransactionParms
. Bu że instancja może być Null
Z poniższych odpowiedzi, nauczyłem się, że adnotacja wskazuje wartości null są dopuszczalne, przykłady, gdzie jest on stosowany, analizatory kod mogę wypróbować i interpretacje mogą się różnić. Zobacz, dlaczego ten format jest dobry? + 1 s przez cały czas, szczególnie za zadanie tego pytania. – icedwater
Która biblioteka udostępnia '@ Nullable' w kontekście twojego pytania? Czy to jest [Checker?] (Https://checkerframework.org/manual/#nullness-checker) – 8bitjunkie