访问有关数组列表中对象的信息

时间:2014-02-16 20:16:08

标签: java object arraylist

我有两个班级,TeacherPupil。在Teacher类中有一个Pupil的数组列表(包含Pupil的实例)。 我想做点什么:

System.out.println(pupils.get(1).getName())

其中getNamePupil类的方法。但是,pupils.get(1)似乎不会充当Pupil,也不会让我称之为此方法。我该怎么办?

3 个答案:

答案 0 :(得分:1)

Generics应该做到这一点。如果您将pupils定义为类型列表,则get(int)应返回Pupil个对象:

List<Pupil> pupils = new ArrayList<Pupil>();
// add some data to the list
System.out.println(pupils.get(1).getName());

答案 1 :(得分:0)

您应该使用Generics

这假设了一些关于代码的基本内容。具体来说,学生是一个包含学生实例的班级。你可以使用getPupils()作为List / Collection来获取它们。

ArrayList<Pupil> pupilsList = new ArrayList<Pupil>();
for (Pupil p : pupils.getPupils()){
    // add all pupils
    System.out.println("Adding " + pupilsList.add(p));
}

for (int i=0; i < pupilsList.size(); i++){
    // print all pupils
    System.out.println("Name: " + pupilsList.get(i).getName())
}

答案 2 :(得分:0)

将学生定义为:

List<Pupil> pupils = ...(some initialization)

或将其投放到Pupil:

System.out.println(((Pupil)(pupils.get(1))).getName())