我想創建一個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 –