我想创建一个randomizer方法,它会随机选择一个新的怪物对象添加到我的java游戏。问题是有很多不同的怪物对象,我想避免在方法中创建多个唯一的if()语句。在java中生成一个新的随机对象最有效的方法是什么?
我目前有10个怪物子类的抽象怪物超类。
我首先想到的是创建一个字符串数组,然后将它们转换为对象,没有工作:
monsterInPlay=monsterRandomizer();
public Monster monsterRandomizer(){
Random rand = new Random();
String [] elements = {"bird","zombie","shark",etc...)
String newMonster = elements[rand.nextInt(9)];
return new ((Monster)newMonster());
}
我想使这一设想需要一个单独的方法。所以我目前只有10个单独的if()语句,我讨厌的外观:
public Monster monsterRandomizer(){
Random rand = new Random();
int i = rand.nextInt(9);
if (i==0){
return new Shark();
}
if (i==1){
return new Zomibie();
}
if (i==2){
return new Bird();
}
// and so on....
我是相对较新的Java,所以任何帮助表示赞赏。如果可能的话,我想避免在代码中放入10个不同的if()语句。
我(和我相信大多数人)不知道你想要什么。也许你想将某个'元素'传递给某个类的构造函数?也许你应该只显示你的“10条语句”代码 – Bohemian
你想要转换成什么样的对象?用if语句显示你的代码,我们可以帮助... –
我想你想用ramdom()创建objet?就像将所有可能的对象放到列表中一样,并且使用列表元素创建对象?如果你想这样的事情,所有的元素应该有相同的父类,并使用父类myobjet =新elementOfListe –