我对ArrayLists的实现有问题 - 我尝试打印我的对象,但是现在它只打印内存地址。我认为循环是我的救世主不知何故,但不能为...的爱...弄清楚如何循环我的课程对象来实现这一点。我错过了什么?这不是不可能或任何事情,只是我愚蠢地想出来(我的前额现在有我键盘的永久印记)。
public class Course{
private String courseID;
private String courseName;
private int ap;
private static ArrayList<Course> courses = new ArrayList<Course>();
public static void main(String[] args) {
Course programmeringGrund = new Course ("725G61", "Programmering Grundkurs", 6);
Course itProjekt = new Course ("725G62", "IT-Projektledning - introduktion", 12);
Course diskretMatematik = new Course ("764G06", "Diskret Matematik och Logik", 6);
Course informatikTeknik = new Course ("725G37", "Informatik, teknik och lärande", 6);
System.out.println(getCourses());
} public Course (String aCourseID, String aCourseName, int anAp){
this.courseID=aCourseID;
this.courseName=aCourseName;
this.ap=anAp;
courses.add(this);
} public static List getCourses(){
return courses;
}
答案 0 :(得分:2)
您需要覆盖toString()
中的Course
方法。打印的“内存地址”是Object
's toString()
method的一部分,您没有覆盖toString()
。
答案 1 :(得分:0)
public class Course
{
...
@Override
public String toString()
{
return "ID=" + courseID + ", Name=" + courseName;
}
...
}
答案 2 :(得分:0)
您有两种选择:
遍历List
返回的getCourses()
并打印出每个课程object
的值。像
ArrayList<Course> mycourses = getCourses();
for(Course obj: mycourses)
{
System.out.println("Id is "+obj.courseId);// So on you print everything
}
或您可以像ZouZou提到的那样覆盖toString()
课程中的Course
方法。至于你现在还没有覆盖toString()
方法,它正在打印List
的内存地址