any way to simplify this with a form of dynamic class instantiation?

Posted by gnychis on Stack Overflow See other posts from Stack Overflow or by gnychis
Published on 2012-11-20T16:04:39Z Indexed on 2012/11/20 17:00 UTC
Read the original article Hit count: 137

Filed under:
|

I have several child classes that extend a parent class, forced to have a uniform constructor. I have a queue which keeps a list of these classes, which must extend MergeHeuristic. The code that I currently have looks like the following:

    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);

Is there any way to simplify that to dynamically instantiate the class, something along the lines of:

heuristic = new heuristicRequest.somethingSpecial();

That would flatten that block of if statements.

© Stack Overflow or respective owner

Related posts about java

Related posts about class