在单独的Java类中调用时,ArrayList为空

时间:2015-03-05 17:26:24

标签: java class arraylist

我有一个类,它启动一个String类型的arraylist。然后我将一些虚拟数据添加到此数组中。

public class Main {

public static void main(String[] args)
    {
    Home h = new Home();
    h.add();
    }
}

public class Home
{
public ArrayList<String> Group_Customers= new ArrayList<String>();
public void add()
    {
        String[] group1 = {"0", "Mr", "Smith", "Andrew"}
        for(int i = 1; i < group1.length; i++)
        {
             Group_Customers.add(group1[i]);
        }
        Add_Booking a = new Add_Booking();
        a.Add();
    }
}

在一个单独的课程中。然后我调用这个arraylist并向其添加更多数据。但是,在这个不同的类

中数组是空的
public class Add_Booking
{
String Title;
String Firstname;
String Surname;
    public void add_Data
    {
        Title = "Mr";
        Firstname = "Bob";
        Surname = "Gallow";

        save_Data();
    }

    public void save_Data
    {
        Home h = new Home();
        String[] responses = {Title, Firstname, Surname};

        for(int i = 1; i < responses.length; i++)
        {
            h.Group_Customers.add(responses[i]);
        }
    System.out.println(h.Group_Customers);
    }
}

- 从类Home输出没有group1测试的响应。 我在这个不同的类中引用Group_Customers错了吗? 所有帮助赞赏。 感谢

1 个答案:

答案 0 :(得分:4)

调用Home h = new Home();时,使用默认构造函数实例化新的Home

如果希望数组包含数据,请确保在构造函数中添加虚拟数据。另外,实际的代码不能编译,你不能只在类体中抛出方法调用。

你会有这样的事情:

public class Home
{
    //Declare the List
    public ArrayList<String> Group_Customers = null;

    //Default constructor
    public Home()
    { 
        //Instantiate and add dummy data
        Group_Customers = new ArrayList<String>();
        Group_Customers.add("test");
    }
}

public class Add_Booking
{
    public static void main(String args[])
    {
        //Construct a new home with default constructor.
        Home h = new Home();

        //Add new data
        h.Group_Customers.add("new data");

        //Display List content (should display test and new data)
        System.out.println(h.Group_Customers);
    }
}

请注意,按照惯例,变量应以每个单词的小写和大写开头,因此您应将变量重命名为groupCustomers