簡體   English   中英

Java:如何將動態數量的參數傳遞給方法

[英]Java: How to pass a dynamic amount of arguments to a method

我寫一個JavaFX應用程序,我需要的施氮量添加TextField在對象的行GridPane使用其addRow方法。 addRow可以接受任意數量的參數,但是接收到的TextField對象的數量不是硬編碼的。 例如,

GridPane gp = new GridPane();
ArrayList<TextField> tf = new ArrayList<>();
for (int i = 0; i < user_entered_number; i++) {
    tf.add(new TextField());
}
gp.addRow(row_index, /* all elements in tf*/);

我希望使用allRow方法將所有生成的TextField對象包括在GridPane行的row_index allRow

如果有可能,我該怎么辦?

GridPane.addRow(...)方法采用int (行索引)和NodeGridPane.addRow(...) 您可以為varargs參數傳遞數組,因此您可以

gp.addRow(row_index, tf.toArray(new Node[0]));

或者,只需首先創建一個數組而不是一個列表:

GridPane gp = new GridPane();
TextField[] tf = new TextField[userEnteredNumber];
for (int i = 0; i < userEnteredNumber; i++) {
    tf[i] = new TextField();
}
gp.addRow(row_index, tf);

我不確定我是否正確理解您的問題。 是否要將tf ArrayList中的所有元素添加為addRow()方法中的參數?

addRow()mathod使用varargs作為參數。 您是否嘗試將ArrayList轉換為array,然后將其傳遞給方法?

TextField[] arr = new TextField[tf.size()];
arr = tf.toArray(arr);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM