Java'da şu şekilde bildirilen bazı yöntemler gördüm:
void foo(@Nullable Object obj)
{ ... }
Burada @Nullable
ifadesinin anlamı nedir? Girdinin null
olabileceği anlamına mı geliyor?
Ek açıklama olmadan, girdi hala null olabilir, bu yüzden sanırım sadece bu değil?
Yöntemin null değerleri kabul ettiğini ve yöntemi geçersiz kılmanız durumunda sizin de null değerleri kabul etmeniz gerektiğini açıkça belirtir.
Ayrıca FindBugs gibi kod analizörleri için bir ipucu görevi görür. Örneğin, böyle bir yöntem önce null olup olmadığını kontrol etmeden argümanını çıkarırsa, FindBugs bir uyarı verecektir.
Bu ek açıklama genellikle NullPointerExceptions
durumlarını ortadan kaldırmak için kullanılır. @Nullablegenellikle bu parametrenin
nullolabileceğini söyler. Bu tür davranışların iyi bir örneği [Google Guice][1]'de bulunabilir. Bu hafif bağımlılık enjeksiyonu çerçevesinde, bu bağımlılığın
nullolabileceğini söylersiniz. Eğer
null` geçmeye çalışırsanız ve açıklama yapmazsanız, framework işini yapmayı reddedecektir.
Dahası @Nullable
, @NotNull
ek açıklamasıyla birlikte kullanılabilir. Burada bunları doğru şekilde nasıl kullanacağınıza dair bazı ipuçları bulabilirsiniz. IntelliJ'deki kod denetimi ek açıklamaları kontrol eder ve kodda hata ayıklamaya yardımcı olur.
Farklı araçlar @Nullable
ifadesinin anlamını farklı yorumlayabilir. Örneğin, Checker Framework ve FindBugs @Nullable
farklı şekilde ele alır.