At runtime, find all classes in a Java application that extend a base class

前端 未结 13 1886
长情又很酷
长情又很酷 2020-11-22 17:25

I want to do something like this:

List animals = new ArrayList();

for( Class c: list_of_all_classes_available_to_my_app() )
   i         


        
13条回答
  •  Happy的楠姐
    2020-11-22 17:54

    Using OpenPojo you can do the following:

    String package = "com.mycompany";
    List animals = new ArrayList();
    
    for(PojoClass pojoClass : PojoClassFactory.enumerateClassesByExtendingType(package, Animal.class, null) {
      animals.add((Animal) InstanceFactory.getInstance(pojoClass));
    }
    

提交回复
热议问题