В случае, если вы не знаете, пакет - только имя класса, вы могли бы попробовать это, используя рамки пружинного:
List<Class> classes = new LinkedList<Class>();
PathMatchingResourcePatternResolver scanner = new
PathMatchingResourcePatternResolver();
// this should match the package and the class name. for example "*.Bar"
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();
// finding the fully qualified name of the class
String classpathToResource = resourceUri.substring(resourceUri
.indexOf("com"), resourceUri.indexOf(".class"));
classpathToResource = classpathToResource.replace("/", ".");
return Class.forName(classpathToResource);
}
Две вышеуказанные методы дают вам список классов которые называются «Бар» (их может быть несколько!).
Тогда легче
expectedSuperclass.isAssignableFrom(yourClass);
У вас есть полное имя пакета? –
То, что я думаю, это то, что кто-то говорит мне: «процедура allnighter берет бар и ничего не возвращает. Allnighter делает ... .Зазывайте allnighter с помощью Foo с атрибутами a, b, c." и моя программа должна генерировать этот код. Это делается по большей части, но не всегда хорошо справляется с наследованием. –