

Yukarıda ki örnek bir kullanım bu kullanım ne işe yarar, neden kullanılır, nerelerde kullanılır?


test adında bir Annotation oluşturmuş olursun. Annotation'lar @interface türündendirler, nasıl class veya interface deklare ediliyorsa, bu da notasyonların deklarasyon şekli.
@Target notasyonu özel bir notasyondur, test notasyonunun nerelerde kullanabileceğinizi belirtir. Örneğin burada ElementType.METHOD olduğu için bu test notasyonu yalnızca metod başlarında kullanılabilir, örneğin sınıf başına eklemeye kalkarsan compile hatası alırsın.
@Retention yine özel gömülü bir notasyondur, @Target gibi, notasyonları yapılandırmak içindirler. RetentionPolicy.RUNTIME şunu demektedir, bu test notasyonunun nerelerde kullanıldığı, çalışma zamanında erişilebilsin denmektedir.
Sanırım şu makalem seni bu konuda daha fazla aydınlatacaktır, http://kodcu.com/2012/09/reflection-ile-bagimlilik-zerki-nasil-gerceklestirilir/
İyi çalışmalar.