簡體   English   中英

從另一個類訪問arraylist

[英]Access arraylist from another class

我是Java的新手,我有一個gui類,該類具有GUI組件,它從文本字段獲取輸入,並將其傳遞給另一個類。 該按鈕的動作監聽器在下面。

public void actionPerformed(ActionEvent action) {               
  arraylist.add(textField_1.getText());
  arraylist.add(textField_2.getText());
  arraylist.add(textField_3.getText());
  arraylist.add(textField_4.getText());     
}

由於這是一個void方法,因此我無法返回數組列表,因此Ii無法構造一個吸氣劑。

public ArrayList<String> getList(){
    return this.arraylist;
}

誰能告訴我如何從另一個類訪問此數組列表而不將其傳遞給構造函數? 如果我問錯了,我很抱歉。 提前致謝。

這是許多可能的方法之一。

只需定義另一個類,然后從您的actionPerformed(..)方法中調用setter

public class YourOtherClass {
    private static ArrayList<String> arraylist;

    public void setList(arrayList) {
        this.arraylist = arraylist;
    }

    public ArrayList<String> getList() {
        return this.arraylist;
    }
}

現在,您可以簡單地將此arraylist設置為:

public void actionPerformed(ActionEvent action) {               
    arraylist.add(textField_1.getText());
    arraylist.add(textField_2.getText());
    arraylist.add(textField_3.getText());
    arraylist.add(textField_4.getText());     
    YourOtherClass.setList(arraylist);
}

現在,當您要訪問此列表的內容時,只需使用:

...
//any other method
ArrayList<String> arraylist = YourOtherClass.getList();
System.out.println(arraylist.get(0)); //or whatever
...

如果我理解,您想這樣做:

public class A {
    private ArrayList<String> arrayList;

    public ArrayList<String> getArrayList() {
        return this.arrayList;
    }
}


public class B {
    private A a = new A();

    public void actionPerformed(ActionEvent action) {               
        a.getArrayList().add(textField_1.getText());
        a.getArrayList().add(textField_2.getText());
        a.getArrayList().add(textField_3.getText());
        a.getArrayList().add(textField_4.getText());     
    }
}

您可以將該數組列表設置為“靜態”並訪問它。

要訪問該特定數組列表,請使用以下語法

classNameThatContainArraylist.yourArrayList

使用靜態時要小心。

如果您想使用設置和獲取數據,那么有很多方法,下面是其中兩種

 public class SetDataInArrayList {

//Aproach one by using object
        private List<ActionEvent> list;
public SetDataInArrayList() {
        list = new ArrayList();
    }

    public void setDataInList(ActionEvent e) {
        list.add(e);
    }

    public List<ActionEvent> getList() {
        return list;
    }

//Approach two by using static reference
private static List<ActionEvent> newList;

    static {
        newList = new ArrayList<>();
    }

    public static void add(ActionEvent e) {
        newList.add(e);
    }

    public static List<ActionEvent> returnList() {
        return newList;
    }

如果您使用兩種方法之一,則在兩種情況下都需要引用變量來獲取數據

暫無
暫無

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

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