Reflections-按@Order批注的顺序获取包类

问题描述 投票:0回答:1

我目前正在像这样的程序包中遍历所有类:

for (var entityClass : new Reflections("com.something.someotherthing").getSubTypesOf(Entity.class))
{
    //Do stuff
}

我向每个类添加了@Order批注,我希望此循环按这些批注的顺序遍历程序包。该怎么办?

java reflection annotations package
1个回答
0
投票

我最终按照建议使用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;
}
© www.soinside.com 2019 - 2024. All rights reserved.