我有一個程序創建了一個對象並將其添加到一個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