If you don't know the package - just the class name, you can try this using the spring framework:
List<Class> classes = new LinkedList<Class>();
PathMatchingResourcePatternResolver scanner = new
PathMatchingResourcePatternResolver();
Resource[] resources = scanner.getResources(matchPattern);
for (Resource resource : resources) {
Class<?> clazz = getClassFromFileSystemResource(resource);
classes.add(clazz);
}
public static Class getClassFromFileSystemResource(Resource resource) throws Exception {
String resourceUri = resource.getURI().toString();
String classpathToResource = resourceUri.substring(resourceUri
.indexOf("com"), resourceUri.indexOf(".class"));
classpathToResource = classpathToResource.replace("/", ".");
return Class.forName(classpathToResource);
}
The two above methods give you a list of classes called "Bar" (there may be several!).
Then easier
expectedSuperclass.isAssignableFrom(yourClass);
source
share