親クラスを拡張する子クラスがいくつかあり、統一されたコンストラクターが必要です。これらのクラスのリストを保持するキューがあり、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ステートメントのブロックがフラットになります。