I want to use a HashMap to dynamically create objects based on the key.
I have a Random Map Generator that stores the maps in 3D Arrays of Type
Integer. Upon creation of the actual map I iterate through this array and based on the Integer I want to create the right block.
Integer map ... map = 3; 3 is a Earth-Block and now I want to initialize a new Block of this type and give it the right coordinates.
Currently I store my Bindings from Integer to Class in a
HashMap(Integer, String) and create my objects like that:
int id = array[x][y][z]; String block_name = Blocks.map.get(id); Block block = (Block) Class.forName(block_name).newInstance(); block.setPosition(x,y,z);
But I want to avoid
newInstance() if possible.
I've never worked that dynamically with Java before and I couldn't find a solution like changing the HashMap to (Integer, Class) or something. I just need to create a new Object based upon the Integer.
Any ideas/solutions? Thanks in advance and have a wonderful day!