有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java无法将对象添加到ArrayList中

如果我创建了名为entires的arraylist,为什么没有定义entires变量

public class College
{
    Student s = new Student();
    ArrayList <Student> entries;

    public College()
    {
        entries = new ArrayList<Student>();
    }

    public void add(Student s)
    {
        entires.add(s);
    }
}

是否已编辑,以便类可以使用ArrayList


共 (5) 个答案

  1. # 1 楼答案

    实际上,您必须在class范围内定义ArrayList,如

    public class College
    {
        Student s = new Student();
        ArrayList <Student> entries;
    
        public College()
        {
            entries = new ArrayList<Student>();
        }
    
        public void add(Student s)
        {
            entries.add(s);
        }
    }
    

    这样,所有的类都可以访问ArrayList

  2. # 2 楼答案

    public class College
      {
    
        private Student s = new Student();
        private List <Student> entries = ArrayList<>();
    
        public void add(Student s)
        {
           entires.add(s);
        }
      }
    
    • 使用List接口
    • Java 7支持type inference,您只需编写ArrayList<>
    • 可以将列表定义为成员,而不是构造函数
  3. # 3 楼答案

    entries变量是在构造函数中本地创建的。无法在您的方法中访问它。让你的作品全球化

    public class College
    {
    Student s = new Student();
    List <Student> entries;
    public College()
    {
     entries = new ArrayList<Student>();
    }
    
    public void add(Student s)
    {
        entires.add(s);
    }
    }
    
  4. # 4 楼答案

    entries变量是在本地定义的。定义如下:

    public class College
    {
    Student s = new Student();
    ArrayList <Student> entries;
    
    public College()
    {
     entries = new ArrayList<Student>();
    }
    
    public void add(Student s)
    {
        entires.add(s);
    }
    }
    
  5. # 5 楼答案

    您应该将entries变量定义为类成员,以便在类方法中访问该变量

    应该是这样的:

    public class College {
    Student s = new Student();
    ArrayList <Student> entries;
    
    public College()
    {
      entries = new ArrayList<Student>();
    }
    
    public void add(Student s)
    {
        entires.add(s);
    }
    }