反思——按照@Order注解的顺序获取包类
Reflections - Get package classes in order of @Order annotation
我目前正在像这样循环访问包中的 classes :
for (var entityClass : new Reflections("com.something.someotherthing").getSubTypesOf(Entity.class))
{
//Do stuff
}
我为每个 class 添加了一个 @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;
}
我目前正在像这样循环访问包中的 classes :
for (var entityClass : new Reflections("com.something.someotherthing").getSubTypesOf(Entity.class))
{
//Do stuff
}
我为每个 class 添加了一个 @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;
}