我有几个扩展父类的子类,被迫有一个统一的构造函数。我有一个队列,其中包含这些类的列表,它必须扩展 MergeHeuristic。我目前拥有的代码如下所示:
Class<? extends MergeHeuristic> heuristicRequest = _heuristicQueue.pop();
MergeHeuristic heuristic = null;
if(heuristicRequest == AdjacentMACs.class)
heuristic = new AdjacentMACs(_parent);
if(heuristicRequest == SimilarInterfaceNames.class)
heuristic = new SimilarInterfaceNames(_parent);
if(heuristicRequest == SameMAC.class)
heuristic = new SameMAC(_parent);
有什么方法可以简化动态实例化类,类似于:
heuristic = new heuristicRequest.somethingSpecial();
这将使 if 语句块变平。