SORU
29 Ocak 2009, PERŞEMBE


Nasıl Java belirli bir sınıfın tüm alt buluyor musunuz?

Nasıl ve Java belirli bir sınıf (ya da belirli bir arabirimin tüm uygulayıcıları) tüm sınıfları bulmak için denemek mi? Şimdi, bunu yapmak için bir yöntem var, ama oldukça yetersiz (az söylemek) buluyorum. Yöntem:

  1. Sınıf Yolu üzerinde var olan tüm sınıf isim listesi
  2. Her sınıf ve test eğer bir alt veya istenilen sınıf veya arabirimin uygulayıcı olup olmadığını görmek için bir yük

Eclipse, güzel bir özellik bu oldukça verimli bir şekilde göstermek için yöneten bir Tür Hiyerarşi olarak adlandırılır. Nasıl hakkında gitmek ve programlı olarak yapıyor mu?

CEVAP
30 Ocak 2009, Cuma


Sınıflar için tarama saf Java ile kolay değildir.

Bahar çerçeve ne bir sınıf ClassPathScanningCandidateComponentProvider adlı sunuyor. Aşağıdaki örnek, paket org Sınıfım tüm alt sınıflar bulur.örnek.paket

ClassPathScanningCandidateComponentProvider provider = new ClassPathScanningCandidateComponentProvider(true);
provider.addIncludeFilter(new AssignableTypeFilter(MyClass.class));

// scan in org.example.package
Set<BeanDefinition> components = provider.findCandidateComponents("org/example/package");
for (BeanDefinition component : components)
{
    Class cls = Class.forName(component.getBeanClassName());
    // use class cls found
}

Bu yöntem edecek demektir adayları bulmak için bayt kodu analizörü kullanarak ek bir yararı vardırdeğilbu taramalar tüm sınıflar yük.

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Amena

    Amena

    15 Kasım 2006
  • Google Developers

    Google Devel

    23 AĞUSTOS 2007
  • Apple&Tech Reviews & Giveaways

    Apple&Tech R

    12 Temmuz 2008