2014-11-03 59 views
-2

背景:我被要求創建一個項目,它涉及到不同的存儲信息的多個類別,其次是一個菜單,允許用戶創建的每個類的對象並調用各種方法(即「存儲的所有數字的平均值」等)創建對象 - 構造函數需要不同類型的參數

我已經設置了一個'菜單'類,帶有允許用戶輸入的掃描儀,可以打印用戶的關鍵字列表輸入以選擇一個選項。所以'輸入'ClassA'來創建ClassA'等等。然後我存儲了一個包含所有可能關鍵字的數組。用戶輸入存儲在實例變量「關鍵字」中,並針對數組進行檢查以確保準確性。

確認之後,我想要設置一個'if'循環來調用每個可能的關鍵字的方法。所以例如

private void processKeyword() { 
    String keyword = getKeyword(); 
    if (keyword.equals("keyword1")) { 
     createClass1(); 
    } 
    if (keyword.equals("keyword2")) { 
     Class1.Method1(); 
    } 

等等我然後可以在菜單類中設置私人方法,讓我做這些事情。

問題:我遇到的問題是,一些構造函數和方法需要整數和字符串類型的參數。掃描器將所有輸入存儲爲字符串,並直接從方法中請求參數(假設createClass1())阻止我從if循環中調用它。

任何人有任何想法我可以繞過這個路障嗎?

回答

1

那麼,你不會給我們很多繼續,所以這裏是一個簡單的答案。

只爲你創建的類創建更多的局部變量。然後在需要時致電他們。

private void processKeyword() { 
    String keyword = getKeyword(); 
    Class1 aClass; // variable here 
    if (keyword.equals("keyword1")) { 
     aClass = createClass1(); // which must be assigned 
    } 
    if (keyword.equals("keyword2")) { 
     aClass.Method1(); // call it 
    } 

也許你想打電話new Class1()而不是createClass1(),所以你可以通過一些參數構造函數。這是下一步 - 用不同的參數調用ctors。但首先,我認爲你應該讓一個類使用一種類型的參數。任何類型你喜歡,無論看起來最簡單。

然後發佈一個新問題,你實際得到了什麼。解釋你將從哪裏獲得這些新參數(你在OP中沒有說)。這並不難,只是對所有不同的可能性有點乏味。堅持下去,它會完成。

相關問題