Dynamic object creation with HashMap
- by Salor
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.
Example: Integer[][][] map ... map[6][6][6] = 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!