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

  • boniver

    boniver

    17 NİSAN 2006
  • Dom Esposito

    Dom Esposito

    26 Mayıs 2011
  • xiaoyu85

    xiaoyu85

    20 ŞUBAT 2010