私はいくつかのオブジェクトを作成し、それぞれをArrayListに追加するプログラムを持っています。そして、ArrayList内の各オブジェクトをループし、各オブジェクトの情報を表示するプロジェクトです。 foreachループ内のオブジェクトを他のクラスのメソッドを使用するために取得できません。ここに私のメインは、下部のトラブルループを含め、次のとおりです。私はcourse.getNameを交換する場合別のクラスのメソッドでforeachループを使う(Java)
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;
}
:
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());
}
}
}
そして、ここでは他のクラスは、私が使用する必要がある方法で私のプロジェクトであります()をjava.getName()で呼び出すと、コードが機能します。なぜオブジェクトを呼び出してコード内の同じ場所から直接メソッドを使うことができるのか、各オブジェクトのgetterを使うためにArrayListのforeachループを使うことができないのは混乱しています。
編集:ITECCourse
にfor
ループでObject
を変更、最初にArrayList<ITECCourse>
を宣言し、もちろんそうそこにISN ITECCourse
ITECCourseList
にからの私のArrayListを変更します。単純なミスが2つだけ/ 3つの変更をしなければならなかった、答えてくれてありがとう私のITECCourseクラスと混同しないでください。あなたは、ループ内のObject
としてcourse
を定義したとObject
は方法getName()
を持っていないためcourse.getName()
へ
https://docs.oracle.com/javase/tutorial/java/generics/ –
変数をクラスと同じように指定することは非常に悪い考えです。 – shmosel
1秒間考えてみてください。 'Object'はメソッド' getName() 'を持っていますか? – nhouser9