我有一个程序创建了一个对象并将其添加到一个ArrayList中,然后应该遍历ArrayList中的每个对象并使用另一个类中的getter该项目显示每个对象的信息。我无法使用我的foreach循环中的对象来使用其他类中的任何方法。这里是我的主,包括底部的麻烦循环:在另一个类中使用foreach循环(Java)
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;
}
如果我更换course.getName ()与java.getName(),代码工作。我很困惑,为什么我不能在整个ArrayList中使用foreach循环来为每个对象使用getter,当我能够调用该对象并直接从代码中的相同位置使用该方法时。
编辑:谢谢你的回答,简单的错误只有使两/三变化:一开始申报ArrayList<ITECCourse>
,在for
循环改变Object
到ITECCourse
,当然从ITECCourse
到ITECCourseList
所以ISN改变我的ArrayList不要和我的ITECC课程混淆。
https://docs.oracle.com/javase/tutorial/java/generics/ –
将一个变量命名为一个类是一个非常糟糕的主意。 – shmosel
想一想吧。一个'Object'是否有一个'getName()'方法? – nhouser9