2013-08-19 32 views
6

Bir notun içinde basit bir ismin kullanılması mümkün mü? Amacım, sınıfı içeren JNDI isimlerini kullanarak enjeksiyonlar için derleme zamanı güvenliği elde etmektir. (Ben ne yapmak istediğinizi, bu derleme zamanında başarısız ait)Java sınıfının adı ek açıklama özniteliği

Örnek:

@EJB(mappedName = "java:module/" + MyService.class.getSimpleName()) 
private MyService myService; 

class.getSimpleName() ek açıklamaları ile çalışmaz hangi zamanında çözülecek gibi görünüyor. Bir şekilde sabit olarak alabilir miyim?

cevap

0

Sahip olduğunuz şekilde mümkün değil. AOP teknikleri ile yapılabilir. Ancak, bu kod parçasında "MyService" adı verilen tek bir olası değeriniz var gibi görünmektedir. Dinamik olarak değişmeyecek, o zaman neden bunu dinamik olarak değerlendirmek istiyorsunuz?

+3

Bir noktada bu sınıfı yeniden adlandırırsam, zaman güvenliğini derlemek isterim. Bir dizgenin manuel olarak değiştirilmesi gerekirken, sınıf adına yapılan bir referans otomatik olarak yeniden güncellenir veya bir derleme zamanlayıcısı hatası verir. –