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:
- Sınıf Yolu üzerinde var olan tüm sınıf isim listesi
- 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ş:
Nasıl belirli bir klasöre git deposu k...
Nasıl belirli bir durum JUnit 4 Test a...
Nasıl Ruby ile min / maks buluyor musu...
Nasıl bir bayt Java literal belirtmek ...
Nasıl eğer belirli bir dizin, bir tabl...