我目前正在像这样的包中遍历类:

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;
}

07-24 15:10