2015-10-31 50 views
1

我正在研究一個小項目,我想使代碼縮短很多,而且更容易,而不是多次寫出它。我有一個如下所示的方法,我想多次使用這個方法 - 但是存儲在文本字段中的每個字符串都必須保留 - 而不是替換。例如。調用方法,將變量重命名爲新的變量

  • 變量TF1 =「物品1」
  • 我然後再調用該方法,可變TF1比變更爲TF1 =「ITEM2」
  • 我想TF1保留兩個「物品1」和「ITEM2 「

方法:

public static void text(){ 
    TextField tf1 = new TextField(); 
} 
text(); 
+4

請說明。如果您在運行時詢問如何更改變量的名稱,那很容易回答:在Java中,與大多數編譯語言一樣,您不能。我的猜測是你想要填充一些集合,可能是一個ArrayList或HashMap,但我不太確定。 –

+0

不清楚你在問什麼? – YoungHobbit

+1

當你輸入一個方法時,你在方法中聲明的任何變量都會被新分配。爲了從方法中獲得一些信息到後續的方法調用中,你必須返回一些東西給調用者,然後他們必須在後續調用中將這些信息傳回給你。 – kcraigie

回答

3

你或許應該用String類型的列表。 列表將使您能夠保持相同類型的無限數據,同時使其保持同名,因爲列表的大小會動態增長。 然後,您可以使用迭代器或for-each循環訪問存儲在列表中的數據。

一般語法是:List<String> textFieldList=new ArrayList<String>();

附:請記住使用java.util包的列表。

+0

非常感謝 - 這幫了很大的忙(遺憾的是沒有解釋得太好) –

+0

@ScottHollas:你還沒有改進過這個問題,並忽略了對你的問題的所有評論:爲什麼?恐怕在這個網站上這不是一個好開始。請通過[幫助]和[參觀]部分,希望你的未來的問題會更好。你仍然可以改進這個問題,這樣纔有意義。 –

+1

更好? @HovercraftFullOfEels –

0

如果我理解這個問題是正確的,我會按照下面的方式來做。

TextField tf[] = new TextField[100]; 
int clickCount = 0; 

public static void text(){ 

tf[clickCount] = new TextField(); 
clickCount++; 

}

可以初始化TF []你想要的號碼。 如果您不知道的數字, 你可以去ArrayList

+0

嗨 - 在[] –

+0

100中使用的100是什麼,僅僅是n在初始化時初始化數組的一個例子 – TheRumboJumbo

0

一個String類型的ArrayList可能會幫助你的代碼。

ArrayList TextField = new ArrayList();

TextField.add(「item1」);
TextField.add(「item2」);