所以我正在制作一个迷你游戏,并希望在游戏重新启动时随机获得一个新的竞技场。每个竞技场都是一个 Java 类,因为每个竞技场上的数据都会发生变化,并且当我加载和卸载地图时。
正如我每次都ArrayList<String>需要做的那样。new Class它的字符串的原因是因为我不希望之前实例化该类,因为加载器位于每个地图的构造函数中
我尝试过研究使用该class.forName()功能然后应用newInstance()似乎没有帮助。
public class Arena {
private ArrayList<String> maps;
private Class currentMap;
public Arena() {
setMaps();
setNewMap();
}
private void setMaps() {
maps = new ArrayList<String>() {
{
add("Beach");
add("CandyLand");
add("Forest");
add("Frozen");
add("Space");
}
};
}
private void setNewMap() {
Random rand = new Random();
int n = rand.nextInt(4); // count includes 0
try {
currentMap = (Class) Class.forName(this.maps.get(n)).newInstance();
} catch (IllegalAccessException | ClassNotFoundException | InstantiationException e) {
e.printStackTrace();
}
}
public Class getCurrentMap() {
return currentMap;
}
public ArrayList<String> getMaps() {
return maps;
}
}
我希望得到与此相同的函数的结果new Class。只需从数组中获取类即可。
偶然的你
幕布斯7119047
相关分类