从另一个类中构造的对象创建一个类中的数组列表

时间:2012-10-27 13:18:35

标签: java object arraylist

我有3个班级: -

  

告诉 - 主程序
  项目 - 个人电话簿项目
  目录 - 存储所有项目的目录对象。


我要做的是在目录中创建一个数组列表,用于存储项类中的对象,这就是我正在做的事情。

来自Tell,我正在调用方法: -

Directory.add(name, telNo);

目录类: -

public class Directory
{
    ArrayList<Entry> entries = new ArrayList<Entry>();
    // Add an entry to theDirectory
    public static void add(String name, String telNo)      
    {
         entries.add(new Entry(name, telNo));
    }
}

入门级: -

public class Entry
{
    String name;
    String telNo;
    public TelEntry(String aName, String aTelNo )
    {
        setNumber(aTelNo);
        setName(aName);
    }

    private void setNumber(String aTelNo)
    {
        telNo = aTelNo;
    }
    private void setName(String aName)
    {
        name = aName;
    }

}

但是我的程序无法编译,并显示以下错误: -

"non-static variable entries cannot be referenced from a static context" 

有谁能解释我做错了什么?

2 个答案:

答案 0 :(得分:2)

您需要将Directory类中的 ArrayList 声明为静态,因为您是从静态上下文中使用它 - 您的 {{1} } 方法。此外,您可以将其设为add,因为您的字段应为私有字段,并提供private访问者方法来访问它。

public

您只能从静态上下文访问静态变量。因为,非静态变量需要使用您的类的实例,并且静态上下文中没有可用的实例,因此您无法使用它们。

答案 1 :(得分:2)

声明entries static。您只能访问静态上下文中的静态变量。

static ArrayList<Entry> entries = new ArrayList<Entry>();