我目前正在像这样的包中遍历类:
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;
}