<分区>
我正在使用 reflections package 得到一组实现某个接口(interface)的类。该集合将用作可能的命令行选项列表。我的问题是我只想获得可实例化的类,但现在从以下代码中同时获得可实例化和不可实例化的类(例如抽象类):
Map<String, Class<? extends InterfaceOptimizer>> optimizerList = new HashMap<String, Class<? extends InterfaceOptimizer>>();
Reflections reflections = new Reflections("eva2.optimization.strategies");
Set<Class<? extends InterfaceOptimizer>> optimizers = reflections.getSubTypesOf(InterfaceOptimizer.class);
for(Class<? extends InterfaceOptimizer> optimizer : optimizers) {
optimizerList.put(optimizer.getName(), optimizer);
}
有没有办法过滤getSubTypesOf
返回的集合来过滤掉抽象类?