使用foreach循环与另一个类中的方法(Java)

时间:2016-09-30 01:24:01

标签: java class arraylist methods foreach

我有一个程序可以创建几个对象并将每个对象添加到ArrayList,然后应该循环遍历ArrayList中的每个对象,并使用项目中另一个类的getter来显示每个对象的信息。我无法在foreach循环中获取对象以使用我其他类中的任何方法。这是我的主要内容,包括底部的故障循环:

import java.util.ArrayList;

public class ITECCourseManager {

    public static void main(String[] args) {

        ArrayList ITECCourse = new ArrayList();

        ITECCourse infotech = new ITECCourse("Info Tech Concepts", 1100, 5, "T3050");
        infotech.addStudent("Max");
        infotech.addStudent("Nancy");
        infotech.addStudent("Orson");
        ITECCourse.add(infotech);

        ITECCourse java = new ITECCourse("Java Programming", 2545, 3, "T3010");
        java.addStudent("Alyssa");
        java.addStudent("Hillary");
        ITECCourse.add(java);

        for (Object course : ITECCourse) {
            System.out.println("Name: " + course.getName());
        }
    }
}

这是我项目中我需要使用的方法的另一个类:

public class ITECCourse {

    public String name;
    public int code;
    public ArrayList<String> students;
    public int maxStudents;
    public String room;

    ITECCourse(String courseName, int courseCode, int courseMaxStudents, String roomNum) {

        name = courseName;
        code = courseCode;
        maxStudents = courseMaxStudents;
        students = new ArrayList<String>();
        room = roomNum;
    }

    public String getName() {
        return name;
    }

如果我用java.getName()替换course.getName(),代码就可以了。当我能够调用对象并直接从代码中的相同位置使用该方法时,我很困惑为什么我不能在ArrayList中使用foreach循环来为每个对象使用getter。

编辑:感谢您的回答,简单的错误只需进行两次/三次更改:在开头声明ArrayList<ITECCourse>,将Object循环中的for更改为{{1}当然,我的arraylist从ITECCourse更改为ITECCourse,所以我的ITECCourse课程并没有混淆。

1 个答案:

答案 0 :(得分:2)

course.getName()的调用不起作用,因为您已在循环中将course定义为ObjectObject没有方法{{1} }}。如果您在getName()声明中添加了类型参数,例如ArrayList,那么您可以遍历ArrayList<ITECCourse>个实例列表,而不是ITECCourse

在旁注中,命名变量Object只会导致混淆,因为它与您的班级相同。可能最好将变量命名为ITECCourse