簡體   English   中英

從大量文本字段中獲取和打印數據的最佳方法?

[英]Best way to grab and print data from a large amount of text fields?

我試圖找出最好的方法來讀取大約60個文本字段中的數據,然后將它們打印成行。

例如

System.out.println(field1.getText()+“” + field2.getText());

問題是,我不想浪費getText()方法。

因此,我的主要問題是,是否有一種更簡單,更好的方法(在性能方面)呢?

圖片: 我的文本字段

您可以使用StringBuilder代替字符串連接以獲得更好的性能:

StringBuilder s = new StringBuilder();
s.append(field1.getText()).append(" ")
 .append(field2.getText()).append(" ")
 .append(field3.getText());
System.out.println(s.toString());

而且,如果您的字段存儲在集合中,則可以遍歷該集合,而不用調用每個單獨的字段:

List<JTextField> fields = new ArrayList<JTextField> ();
for(int i = 0; i < 30; i++) {
    fields.add(new JTextField(Integer.toString(i)));
}
//...
StringBuilder s = new StringBuilder();
for (JTextField t : fields) {
    s.append(t.getText()).append(" ");
}
//...

我想不出任何其他性能更好的方法。

首先,

  • 使用TextField數組或列表保存所有文本字段。 然后,您可以使用for循環對其進行迭代。

其次,

  • 盡可能使用StringBuilder。
  1. 將字段添加到數組或集合中,然后在for-each循環中對其進行迭代,以輸出輸出。

  2. 在類上使用反射,通過一些命名約定來識別字段,例如正則表達式textField.+

  3. 編寫自己的注釋,使其在運行時可保留,並對要訪問的每個字段進行注釋,然后使用反射在類字段上進行迭代,檢查該注釋,並在附加了注釋的情況下打印文本字段的值。

具有良好的命名約定/樣式,最好是2.。 3.有點重量級,但非常精確和靈活。 1.也是一種快速簡便的技巧。

您可以嘗試使用反射。 在性能方面,它會比較慢:

public class Snippet {

    JTextField field1 = new JTextField("1");
    JTextField field2 = new JTextField("2");

    JTextField field3 = new JTextField("3");
    JTextField field4 = new JTextField("4");

    // add more fields here

    public static void main(String[] args) throws Exception {
        new Snippet().run();
    }

    private void run() throws Exception {
        for (int i = 1; i <= 4; i += 2) {
            JTextField textfieldA = getTextField(i);
            JTextField textfieldB = getTextField(i + 1);
            System.out.println(textfieldA.getText() + " " + textfieldB.getText());
        }
    }

    private JTextField getTextField(int i) throws NoSuchFieldException, IllegalAccessException {
        Field field = Snippet.class.getDeclaredField("field" + i);
        JTextField textfield = (JTextField) field.get(this);
        return textfield;
    }
}

這是快速而又骯臟的,從長遠來看,最好將文本字段放入適當的數據結構(例如List或Map)並對其進行簡單地迭代。

暫無
暫無

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

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