"Merhaba, Amigo!"

"Merhaba Rishi."

"Bugün size ek açıklamalara daha derin bir giriş yapacağım."

"Muhtemelen zaten bildiğiniz gibi, ek açıklamalar sınıfların, alanların, yöntemlerin ve değişkenlerin yanına konulabilen özel sözcüklerdir."

"Evet. Onlarla çok sık karşılaşıyorum."

"Bazen meta veriler olarak da adlandırılırlar . Birincil amaçları, yöntemler, alanlar ve sınıflar hakkında belirli ek bilgileri depolamaktır."

"Kimin için saklıyorlar?"

"Bu çok güzel bir soru."

"İnsanlar ek açıklamalar yazıyor, bu da birinin bunlara ihtiyacı olması gerektiği anlamına geliyor."

"Açıklamalar, kod ve program öğeleri hakkında ek bilgiler depolamanıza izin verir, ancak resmi olarak kodun parçası değildirler."

"Açıklamalar, XML oluşturmak, bir yöntemin kullanımdan kaldırılıp kaldırılmadığını belirlemek, hataları izlemek vb. için kullanılabilir."

"İşte koddaki ek açıklamalara bir örnek:"

Örnek
@CatInfo(manager=Catmanager.class, unique=true)
class Cat
{
 @Name("Missy")
 private String name;

 @SuppressWarnings(value = "unchecked")
 void getUniqueCatName()
 {

 }
}

"Gördüğünüz gibi, veriler ek açıklamalarda saklanabilir."

"Bir açıklamanın value adlı yalnızca bir alanı varsa , alan adı atlanabilir:"

Örnek
@SuppressWarnings("unchecked")
void getUniqueCatName()
{

}

"Parantez içinde parametre yoksa bunlar da atlanabilir:"

Örnek
@Override
void getUniqueCatName()
{

}

"Kendi ek açıklamanızı oluşturmak çok kolay. Bir ek açıklama bildirmek, bir arayüz bildirmekle neredeyse aynıdır."

Örnek
@interface CatManager
{
 Class manager();
 boolean unique();
 String name() default "Unknown Cat";
}

"Sadece birkaç fark var."

"İlk olarak, arayüz kelimesinin önüne bir «@» işareti koyun ."

"İkinci olarak, bir ek açıklamanın varsayılan değerleri olabilir. Varsayılan değerleri ayarlamak için varsayılan kelimesini kullanırsınız . Yukarıdaki örneğe bakın. Bu parametreler isteğe bağlıdır ve ek açıklamalar eklenirken atlanabilir."

"Ah. Düşündüğümden daha kolay. Ve Robo-Şeytan'ın kutsal sudan kaçındığı gibi onlardan kaçıyorum. Kodun tamamen anlamadığınız birçok şeyi içermesi pek hoş değil."

"Ah, hatırlattığın iyi oldu - sana derleyici tarafından kullanılan ek açıklamalar hakkında daha fazla bilgi vermek istiyorum."

"Bu türden yalnızca 3 ek açıklama var. Şimdiye kadar üç tane."

@Kullanımdan kaldırıldı.

"@Deprecated ile bir sınıfa veya yönteme açıklama ekleyebilirsiniz. Bu, derleyicinin bir uyarı vermesine neden olur (uyarı bir hata değildir) ve IntelliJ IDEA bu ​​yöntemi üstü çizili metin olarak görüntüler. Bunun gibi bir şey  :

Örnek
Date date = new Date();
int year = date.getYear();

@Geçersiz kıl.

"Geçersiz kıldığınız yöntemlere @Override ek açıklamasını eklemek en iyi uygulama olarak kabul edilir."

"Bu ne için? IDEA zaten bir yöntemin geçersiz kılınıp kılınmadığını göstermiyor mu?"

"Önce IDEA var ve sonra Java sözdizimi var."

"İkincisi, varsayımsal olarak, alt sınıftaki yöntem adına karşılık gelen bir değişiklik olmadan bir temel sınıfın yönteminin yeniden adlandırıldığı bir durumla karşılaşabilirsiniz. Program beklendiği gibi çalışmayacak, ancak kimse fark etmeyecek. Bu açıklama, Bu durumların olmasını önlemek:"

Örnek
@Override
void getUniqueCatName()
{

}

@SuppressWarnings.

"Bazen derleyici çok sayıda uyarı gösteriyor. Bazen de «sorunları» biliyoruz ve onları oluşturan karşılık gelen kodu kullanmayı bilinçli olarak seçiyoruz. Bu açıklamayı, bu uyarılardan bazılarını gizlemek için kullanabilirsiniz."

"Bir programcı , derleyiciye "Bu hata için bir uyarı gösterme - kasıtlıdır" demek için @SuppressWarnings ek açıklamasını kullanabilir . Örneğin:"

Örnek
@SuppressWarnings("unchecked")
void getUniqueCatName()
{

}

"Anladım."

"Biraz yoruldum. Gidip kavrulan boğazımı ıslatacağım. Biraz aradan sonra devam edelim olur mu?"

"Elbette."