2012-01-24 20 views
9

Merhaba: Bir sınıfta derleme zamanında bir ek açıklamanın bulunduğundan emin olmak istedim. Mümkün mü ? Annoyasyonların kendileri olduğunu, sınıfların olduğunu anlıyorum, öyle düşünüyorum - ama sınıflarımda böyle bir yapıyı nerede ve nasıl uygulayacağımı ve nasıl uygulayacağımı emin değilim.Java ek açıklamalarını derleme zamanında zorlama

+0

Bir birim test paketinin bir parçası olarak sıklıkla kullanılan ek açıklama denetleyicilerini gördüm. Bu senin için çalışır mı? – templatetypedef

+0

Eh - derslerden alınması gereken bazı sabitlerim var. Sınıflar çirkin bir kurucuya sahip, bu yüzden onları alıcıları kullanarak uygulayamıyorum. Bu yüzden ek açıklama alanı olarak sabit parametrelerle ek açıklamaları kullanarak sınıfa not ekleyeceğimi düşündüm. – jayunit100

cevap

14

Derleme zamanında rasgele mantığı çalıştırmak için bir açıklama işlemcisi yazabilirsiniz.

Bir ek açıklama işlemcisinden, belirli bir notun söz konusu sınıfta var olması durumunda belirli bir yapının veya üyelerin var olup olmadığını kontrol etmek gibi şeyler yapabilirsiniz. Oldukça esnekler - Onlarla ne yapabileceğiniz hakkında daha fazla fikir sahibi olmak için the API numaralı telefonu inceleyin. Ayrıca Eclipse ve Netbeans gibi büyük IDE'lerde desteklenir.

Bir ek not işlemcisinin yazılmasına giriş, here.

+0

Bu iyi bir cevap. Daha yüksek düzeyde veya daha basit bir yaklaşım olup olmadığını (yani, bunu mevcut kod/sınıflarda basitçe uygulamak için bir yol) olup olmadığını görmek için sabırsızlanıyorum. – jayunit100

+0

Anlattığımdan, ek açıklama işlemcisi, OP'nin aradığı şey gibi görünmeyen ek açıklamalara sahip olmayan sınıflar üzerinde işlem yapmayı ihmal edecektir. Yine de aynı çözümü arıyorum, eğer hatalıysam, bir örneğe bayılırdım. –

+2

Eğer işlemcinizde @SupportedAnnotationTypes ("*") kullanırsanız, üzerinde herhangi bir ek açıklama olmasa bile tüm sınıfları alır. – prunge

İlgili konular