我目前正在像这样的程序包中遍历所有类:
for (var entityClass : new Reflections("com.something.someotherthing").getSubTypesOf(Entity.class))
{
//Do stuff
}
我向每个类添加了@Order
批注,我希望此循环按这些批注的顺序遍历程序包。该怎么办?
我最终按照建议使用AnnotationAwareOrderComparator
,并将此逻辑提取到实用程序方法中,如下所示:
public static ArrayList<Class<? extends Entity>> getOrderedClassList(String packageName)
{
var entityClasses = new ArrayList<Class<? extends Entity>>(
new Reflections(packageName).getSubTypesOf(Entity.class));
AnnotationAwareOrderComparator.sort(entityClasses);
return entityClasses;
}