访问ArrayList另一个类

时间:2017-04-28 19:10:00

标签: java

我只是混淆了如何从另一个帧访问我的数组列表到另一个帧 例如:

Class Customer
{
    String name ="";
    int age = 0;

}

Class Customerlist
{
    ArrayList<Customer> customerlist;
}

我有3帧说(主框架,第1帧和第2帧

在第1帧中,我从Customer和Customerlist

类创建对象
Customer myCustomerObj = new Customer();
Customerlist myCustomerlistObj = new CustomerList;

myCustomerlistObj.customerlist.add(myCustomerObj);

在第2帧中,我再次从Customer和Customerlist

类创建对象
Customer myCustomerObj = new Customer();
Customerlist myCustomerlistObj = new CustomerList;

myCustomerlistObj.customerlist.add(myCustomerObj);

现在我想检查主框架中的arraylist的大小

Customerlist myCustomerlistObj = new CustomerList;

with -> myCustomerlistObj.customerlist.size();

结果大小为0,但是当我检查第1帧和第2帧的大小时,我得到大小1

使用按钮调用此帧1和帧2。 对不起我的坏英语

这样的静态属性的目的是什么
static private Custumer cs;

2 个答案:

答案 0 :(得分:0)

每次从CustomerList类创建新实例时,都会在内存上创建一个新的ArrayList对象。

Customerlist myCustomerlistObj = new CustomerList;

每次执行此代码行时,它都会创建一个新的ArrayList实例。因此,如果您想从所有帧中访问单个ArrayList,您应该像这样重新创建CustomerList类。

public class CustomerList{
    public static ArrayList<Customer> customers = new ArrayList<>();
}

之后,您可以像这样访问列表。

CustomerList.customers.add(new Customer());

你也问过什么是静态关键字。 静态属性绑定到类。不是它的实例。您从该类创建了多少个实例,静态属性将在内存中创建一个副本。

答案 1 :(得分:0)

您的ArrayList应为public static。如果你这样做,你应该能够从另一个类访问你的ArrayList

Customerlist.customerlist.add(new Customer());
int size = Customerlist.customerlist.size();