From e38111aafddd6f891894dc249233aafe6ad8a6bd Mon Sep 17 00:00:00 2001 From: Fabian Becker Date: Tue, 8 Oct 2013 16:14:52 +0200 Subject: [PATCH] Select only instantiable classes refs #3 --- src/eva2/cli/Main.java | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/src/eva2/cli/Main.java b/src/eva2/cli/Main.java index d00d869c..01ef2d59 100644 --- a/src/eva2/cli/Main.java +++ b/src/eva2/cli/Main.java @@ -9,6 +9,7 @@ import eva2.optimization.OptimizationStateListener; import org.reflections.Reflections; import java.lang.reflect.Field; +import java.lang.reflect.Modifier; import java.util.Collection; import java.util.HashMap; import java.util.Map; @@ -76,11 +77,15 @@ public class Main implements OptimizationStateListener { } public static Map> createOptimizerList() { - Map>optimizerList = new HashMap>(); + Map> optimizerList = new HashMap>(); Reflections reflections = new Reflections("eva2.optimization.strategies"); Set> optimizers = reflections.getSubTypesOf(InterfaceOptimizer.class); for(Class optimizer : optimizers) { + // We only want instantiable classes. + if(optimizer.isInterface() || Modifier.isAbstract(optimizers.getClass().getModifiers())) { + continue; + } optimizerList.put(optimizer.getName(), optimizer); } return optimizerList;