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

  • Derek Banas

    Derek Banas

    12 AĞUSTOS 2008
  • esnathesinger

    esnathesinge

    6 NİSAN 2009
  • Goran Dimov

    Goran Dimov

    1 HAZİRAN 2014